So richten Sie die GUI auf dem Amazon EC2 Ubuntu-Server ein


136

Ich verwende eine Amazon Ubuntu EC2-Instanz, die nur eine Befehlszeilenschnittstelle hat. Ich möchte die Benutzeroberfläche für diesen Server für den Zugriff mit Remotedesktop-Tools einrichten. Gibt es eine Möglichkeit, die GUI auf die EC2-Instanz anzuwenden?


@ user3071284 Dieser Artikel ist großartig und es fehlt nur ein weiterer Schritt - das Öffnen des RDP-Ports (3389) in Ihren Instanz-Sicherheitsgruppen.
Noam Manos

1
Leider ist dieser Link jetzt nicht verfügbar.
KK2491

Die Lösung für mich bestand darin, sicherzustellen, dass die xstartup-Datei ausführbar ist: chmod + x ~ / .vnc / xstartup
Christopher Broderick

Antworten:


200

Das kann gemacht werden. Im Folgenden finden Sie die Schritte zum Einrichten der GUI

Erstellen Sie einen neuen Benutzer mit Passwort-Login

sudo useradd -m awsgui
sudo passwd awsgui
sudo usermod -aG admin awsgui

sudo vim /etc/ssh/sshd_config # edit line "PasswordAuthentication" to yes

sudo /etc/init.d/ssh restart

Einrichten einer UI-basierten Ubuntu-Maschine unter AWS.

Öffnen Sie in der Sicherheitsgruppe Port 5901. Dann ssh zur Serverinstanz. Führen Sie die folgenden Befehle aus, um den UI- und VNC-Server zu installieren:

sudo apt-get update
sudo apt-get install ubuntu-desktop
sudo apt-get install vnc4server

Führen Sie dann die folgenden Befehle aus und geben Sie das Anmeldekennwort für die vnc-Verbindung ein:

su - awsgui

vncserver

vncserver -kill :1

vim /home/awsgui/.vnc/xstartup

Drücken Sie dann die Einfügen-Taste, scrollen Sie mit den Tastaturpfeilen durch die Textdatei und löschen Sie das Nummernzeichen (#) am Anfang der beiden Zeilen unter der Zeile "Kommentieren Sie die folgenden zwei Zeilen für den normalen Desktop aus." Und in der zweiten Zeile fügen Sie "sh" hinzu, damit die Zeile lautet

exec sh /etc/X11/xinit/xinitrc. 

Wenn Sie fertig sind, drücken Sie Strg + C auf der Tastatur, geben Sie: wq ein und drücken Sie die Eingabetaste.

Starten Sie dann den vnc-Server erneut.

vncserver

Sie können xtightvncviewerden Desktop (für Ubutnu) hier herunterladen: https://help.ubuntu.com/community/VNC/Clients

Geben Sie im vnc-Client öffentliches DNS plus ": 1" an (z. B. www.example.com:1). Geben Sie das vnc-Anmeldekennwort ein. Stellen Sie sicher, dass Sie eine normale Verbindung verwenden. Verwenden Sie nicht die Schlüsseldateien.

Weitere Anleitungen finden Sie hier: http://www.serverwatch.com/server-tutorials/setting-up-vnc-on-ubuntu-in-the-amazon-ec2-Page-3.html

Der Mac VNC-Client kann hier heruntergeladen werden: https://www.realvnc.com/en/connect/download/viewer/

Anschlussöffnung an der Konsole

sudo iptables -A EINGABE -p tcp --dport 5901 -j AKZEPTIEREN

Wenn das Problem mit dem grauen Fenster auftritt. Meistens wegen der Datei ".vnc / xstartup" auf einem anderen Benutzer. Führen Sie den vnc-Server also auch auf demselben Benutzer anstelle des Benutzers "awsgui" aus.

vncserver


13
Ich denke, Sie werden su - awsguinachsudo usermod -aG admin awsgui
Konstantin K

14
Denken Sie daran, Port 5901 in Ihrer Sicherheitsgruppe zu öffnen, damit dies funktioniert. Danke für die ausführliche Antwort!
Daniel Magliola

11
Ich habe ein paar Anleitungen ausprobiert, einschließlich dieser, und ich bekomme nur einen grauen Hintergrund - keinen Ubuntu-Desktop.
Schraubenschlüssel

5
Ich tat dies, was den grauen Hintergrund für mich löste digitalocean.com/community/questions/…
timhc22

8
Versuchen Sie, vim .vnc/xstartupwenn vim awsgui/.vnc/xstartupnicht funktioniert
TomasVeras

76

Ich folge also der ersten Antwort, aber mein VNC-Viewer zeigt mir einen grauen Bildschirm an, wenn ich eine Verbindung dazu herstelle. Und ich habe diesen Ask Ubuntu-Link gefunden , um das zu lösen.

Der einzige Unterschied zur vorherigen Antwort besteht darin, dass Sie diese zusätzlichen Pakete installieren müssen:

apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

Und verwenden Sie diese ~ / .vnc / xstartup-Datei:

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

Alles andere ist das gleiche.

Getestet auf EC2 Ubuntu 14.04 LTS.


2
Dies funktionierte für mich zusätzlich zu der vorherigen Antwort und su - awsguierledigt, bevor die vnc-Befehle ausgeführt wurden.
Vincenzo Pii

1
Dieser Schritt war erforderlich, damit es funktioniert, nachdem die meisten Tutorials zum Einrichten des Ubuntu-Desktops auf aws mit tightvncserver befolgt wurden. Keines der Tutorials hat ohne diesen Schritt für mich funktioniert.
Techdog

1
Möglicherweise müssen Sie Ihr Betriebssystem neu starten, nachdem Sie diese Schritte ausgeführt haben. Ich habe diese Antwort befolgt und muss zuerst neu starten.
tno2007

Ich habe die obigen Schritte ausprobiert und kann Ubuntu auf RealVNC sehen. Aber ich kann nur das Terminal und den Desktop sehen. Irgendwie fehlen andere UI-Teile wie Symbolleiste, Anwendungen usw. Gibt es noch andere Schritte oder eine Lösung dafür?
Vinayak

Führen Sie Folgendes im Terminal aus: killall gnome-panel && sudo gnome-panel &
Octocat

17

Für Ubuntu 16.04

1) Installieren Sie Pakete

$ sudo apt update;sudo apt install --no-install-recommends ubuntu-desktop
$ sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

2) Bearbeiten Sie die Datei / usr / bin / vncserver und ändern Sie sie wie folgt

Finde diese Zeile

"# exec /etc/X11/xinit/xinitrc\n\n".

Und fügen Sie diese Zeilen unten hinzu.

"gnome-session &\n".
"gnome-panel &\n".
"gnome-settings-daemon &\n".
"metacity &\n".
"nautilus &\n".
"gnome-terminal &\n".

3) Erstellen Sie mit dem Befehl "vncserver" ein VNC-Kennwort und eine vnc-Sitzung für den Benutzer.

lonely@ubuntu:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth: file /home/lonely/.Xauthority does not exist
New 'ubuntu:1 (lonely)' desktop is ubuntu:1
Creating default startup script /home/lonely/.vnc/xstartup
Starting applications specified in /home/lonely/.vnc/xstartup
Log file is /home/lonely/.vnc/ubuntu:1.log

Jetzt können Sie über IP / Domain und Port 1 auf die GUI zugreifen

stackoverflow.com:1

Getestet auf AWS und Digital Ocean.

Für AWS müssen Sie Port 5901 für die Firewall zulassen

Sitzung beenden

$ vncserver -kill :1

Verweisen:

https://linode.com/docs/applications/remote-desktop/install-vnc-on-ubuntu-16-04/

In diesem Handbuch finden Sie permanente Sitzungen als Service

http://www.krizna.com/ubuntu/enable-remote-desktop-ubuntu-16-04-vnc/


Es hat funktioniert, aber nach dem Neustart des Computers hat ssh die Verbindung mit einem Verbindungszeitüberschreitungsfehler beendet. Haben Sie eine Idee, warum es passiert?
Shan Khan

9

1) Starten Sie die Ubuntu-Instanz auf EC2.
2) Öffnen Sie den SSH-Port für die Instanzsicherheit.
3) Führen Sie eine SSH-Instanz durch.
4) Ausführen:

sudo apt-get update    sudo apt-get upgrade

5) Da Sie eine Verbindung von Windows Remotedesktop aus herstellen, bearbeiten Sie die Datei sshd_config auf Ihrer Linux-Instanz, um die Kennwortauthentifizierung zu ermöglichen.

sudo vim /etc/ssh/sshd_config

6) Ändern Sie PasswordAuthentication von no in yes, speichern Sie es und beenden Sie es.
7) Starten Sie den SSH-Daemon neu, damit diese Änderung wirksam wird.

sudo /etc/init.d/ssh restart

8) Erhalten Sie vorübergehend Root-Berechtigungen und ändern Sie das Kennwort für den Ubuntu-Benutzer in ein komplexes Kennwort, um die Sicherheit zu erhöhen. Drücken Sie die Eingabetaste, nachdem Sie den Befehl passwd ubuntu eingegeben haben, und Sie werden aufgefordert, das neue Kennwort zweimal einzugeben.

sudo –i
passwd ubuntu

9) Wechseln Sie zurück zum Ubuntu-Benutzerkonto und CD zum Ubuntu-Ausgangsverzeichnis.

su ubuntu
cd

10) Installieren Sie die Ubuntu-Desktop-Funktionalität auf Ihrer Linux-Instanz. Der letzte Befehl kann bis zu 15 Minuten dauern.

export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get update
sudo -E apt-get install -y ubuntu-desktop

11) Installieren Sie xrdp

sudo apt-get install xfce4
sudo apt-get install xfce4 xfce4-goodies

12) Machen Sie xfce4 zum Standard-Fenstermanager für RDP-Verbindungen.

echo xfce4-session > ~/.xsession

13) Kopieren Sie .xsession in den Ordner / etc / skel, sodass xfce4 als Standardfenstermanager für alle neu erstellten Benutzerkonten festgelegt ist.

sudo cp /home/ubuntu/.xsession /etc/skel

14) Öffnen Sie die Datei xrdp.ini, um den Host-Port zu ändern, zu dem Sie eine Verbindung herstellen möchten.

sudo vim /etc/xrdp/xrdp.ini

(xrdp ist bis jetzt nicht installiert. Installieren Sie zuerst xrdp mit sudo apt-get install xrdp und bearbeiten Sie dann die oben genannte Datei.)

15) Suchen Sie nach dem Abschnitt [xrdp1] und ändern Sie den folgenden Text (speichern und beenden Sie dann [: wq]).

port=-1
- to -
port=ask-1

16) Starten Sie xrdp neu.

sudo service xrdp restart

17) Öffnen Sie unter Windows den Remotedesktopverbindungsclient, fügen Sie den vollständig qualifizierten Namen Ihrer Amazon EC2-Instanz für den Computer ein und klicken Sie dann auf Verbinden.

18) Wenn Sie aufgefordert werden, sich bei xrdp anzumelden, stellen Sie sicher, dass das Modul sesman-Xvnc ausgewählt ist, und geben Sie den Benutzernamen ubuntu mit dem neuen Kennwort ein, das Sie in Schritt 8 erstellt haben. Wenn Sie eine Sitzung starten, lautet die Portnummer -1.

19) Wenn das System eine Verbindung herstellt, werden auf dem Bildschirm Verbindungsprotokoll mehrere Statusmeldungen angezeigt. Achten Sie genau auf diese Statusmeldungen und notieren Sie sich die angezeigte VNC-Portnummer. Wenn Sie später zu einer Sitzung zurückkehren möchten, geben Sie diese Nummer im Portfeld des xrdp-Anmeldedialogfelds an.

Weitere Informationen finden Sie unter: https://aws.amazon.com/premiumsupport/knowledge-center/connect-to-linux-desktop-from-windows/
http://c-nergy.be/blog/?p=5305


2
Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Bhargav Rao

3
Ich kann den Abschnitt [xrdp1] in der Datei xrdp.ini nicht finden.
Sudhir

3

Für LXDE / Lubuntu


1. Stellen Sie eine Verbindung zu Ihrer Instanz her (lokaler Weiterleitungsport 5901).

ssh -L 5901: localhost: 5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com

2. Installieren Sie die Pakete

sudo apt update && sudo apt upgrade
sudo apt-get installiere xorg lxde vnc4server lubuntu-desktop

3. Erstellen Sie /etc/lightdm/lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

4. Kopieren Sie Folgendes und fügen Sie es in die lightdm.conf ein und speichern Sie es

[SeatDefaults]
allow-guest = false
Benutzersitzung = LXDE
# Benutzersitzung = Lubuntu

5. vncserver einrichten (Sie werden aufgefordert, ein Kennwort für den vncserver zu erstellen)

vncserver
sudo echo "lxpanel & / usr / bin / lxsession -s LXDE &" >> ~ / .vnc / xstartup

6. Starten Sie Ihre Instanz neu und stellen Sie die Verbindung wieder her

sudo reboot
ssh -L 5901: localhost: 5901 -i "xxx.pem" ubuntu@xxx.amazonaws.com

7. Starten Sie vncserver

vncserver -geometry 1280x800

8. Stellen Sie in Ihrem Remotedesktop-Client (z. B. Remmina) den Server auf localhost: 5901 und das Protokoll auf VNC ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.