Skip to content

Wie installiere ich eine GUI auf meiner Amazon-EC2-Instance, auf der Amazon Linux 2 ausgeführt wird?

Lesedauer: 9 Minute
0

Ich möchte eine grafische Benutzeroberfläche (Graphical User Interface, GUI) auf meiner Amazon Elastic Compute Cloud (Amazon EC2)-Instance installieren, auf der Amazon Linux 2 (AL2) ausgeführt wird.

Kurzbeschreibung

Du benötigst eine Desktop-Umgebung, um grafische Anwendungen unter Linux auszuführen. Bei den standardmäßigen Amazon Machine Images (AMIs) für AL2 ist standardmäßig keine Desktop-Umgebung installiert. Verwende die AL2 Extras-Bibliothek, um die MATE-Desktop-Umgebung zu installieren. Weitere Informationen findest du unter MATE Desktop Environment (MATE-Desktop-Umgebung) auf der MATE-Website.

Oder starte die Instance von einem AL2-AMI aus, auf dem MATE vorinstalliert ist. Weitere Informationen findest du unter Konfiguration der AL2 MATE-Desktop-Verbindung. Du kannst virtuelle Desktops auf Amazon WorkSpaces auch verwenden, um AL2, Ubuntu Linux, Rocky Linux, Red Hat Enterprise Linux (RHEL) oder Microsoft Windows auszuführen.

Hinweis: Die folgende Lösung gilt für Instances, die nur auf AL2 ausgeführt werden. Es funktioniert nicht für Amazon Linux 1 (AL1) oder Amazon Linux 2023 (AL2023). Informationen zur Installation der GUI in AL2023 findest du im Tutorial: Installiere die GNOME-Desktop-Umgebung auf AL2023. Nachdem du eine GUI auf AL2023 konfiguriert hast, kannst du den Tiger VNC-Server auf AL2023 so konfigurieren, dass er eine Verbindung zur GUI herstellt.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Die folgende Lösung gilt nur für AL2. Führe den folgenden Befehl aus, um den Namen und die Version der Linux-Verteilung zu überprüfen:

grep PRETTY_NAME /etc/os-release

Du kannst die folgenden Lösungsschritte nicht bei Umgebungen verwenden, die eine Bastion (Jump)-Instance verwenden, um eine Verbindung zu anderen EC2-Instances in einem nicht öffentlichen Subnetz herzustellen. Verwende EC2 Instance Connect Endpoint oder Session Manager, eine Funktion von AWS Systems Manager, um eine sichere Verbindung zu EC2-Instances herzustellen, die keine direkte Internetkonnektivität haben. Oder verwende AWS Site-to-Site VPN oder AWS Direct Connect, um eine sichere Konnektivität zwischen deinem Netzwerk und AWS herzustellen.

Aktualisieren der Instance

Es empfiehlt sich, die Instance zu aktualisieren und neu zu starten, bevor du die GUI installierst, um Probleme zu vermeiden.

Gehe wie folgt vor, um die Instance zu aktualisieren:

  1. Stelle eine Verbindung zur Amazon EC2-Instance her.

  2. Führe den folgenden Befehl aus, um die Instance zu aktualisieren:

    sudo yum update
  3. Starte die Instance neu.

Installieren der MATE-Desktop-Umgebung

Gehe wie folgt vor, um die MATE-Desktop-Umgebung zu installieren:

  1. Führe den folgenden Befehl aus, um MATE-Pakete zu installieren:

    sudo amazon-linux-extras install mate-desktop1.x
  2. Führe den folgenden Befehl aus, um MATE als die Standard-Desktop-Umgebung für alle Benutzer zu definieren:

    sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'

Installieren eines VNC-Servers

Installiere einen Virtual Network Computing (VNC)-Server wie TigerVNC, um auf grafische Remote-Desktop-Services zuzugreifen. Weitere Informationen zu TigerVNC findest du unter TigerVNC auf der TigerVNC-Website.

Aus Sicherheitsgründen erlaubt die folgende Konfiguration keine direkte Konnektivität über TigerVNC. Stattdessen musst du einen verschlüsselten SSH-Tunnel verwenden, um auf die GUI zuzugreifen. Es hat sich bewährt, keine VNC-Ports in den Sicherheitsgruppen zu öffnen.

Gehe wie folgt vor, um TigerVNC zu installieren:

  1. Führe den folgenden Befehl aus, um den TigerVNC-Server zu installieren:

    sudo yum install tigervnc-server
  2. Führe den folgenden Befehl aus, um ein VNC-spezifisches Passwort für deinen Benutzer zu konfigurieren:

    vncpasswd

    Hinweis: Wenn das Terminal fragt, ob du ein Passwort eingeben möchtest, das nur zum Lesen verwendet werden kann, drücke n. Das unverschlüsselte Passwort wird in einer Datei im Stammverzeichnis aufgezeichnet. Nur dein Benutzer und der Root-Benutzer können auf die Datei zugreifen. Ein Aufforderungs-Antwort-Mechanismus schützt die über das Netzwerk übertragenen Passwörter. Weitere Informationen findest du unter vncpasswd auf der TigerVNC-Website. Der SSH-Tunnel, den du verwendest, schützt Verbindungen zusätzlich mit einer stärkeren Verschlüsselung.

  3. Führe den folgenden Befehl aus, um das systemweite Konfigurationsverzeichnis tigervnc zu erstellen:

    sudo mkdir /etc/tigervnc
  4. Führe den folgenden Befehl aus, um die direkte Konnektivität zum VNC zu blockieren:

    sudo bash -c 'echo localhost > /etc/tigervnc/vncserver-config-mandatory'
  5. Führe den folgenden Befehl aus, um eine neue systemd-Einheit für TigerVNC zu erstellen:

    sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
  6. Führe den folgenden Befehl aus, um alle Vorkommen von <USER> in der neuen Einheit durch deinen Benutzernamen zu ersetzen:

    sudo sed -i 's/<USER>/'${USER}'/' /etc/systemd/system/vncserver@.service
  7. Führe den folgenden Befehl aus, um die systemd-Manager-Konfiguration neu zu laden:

    sudo systemctl daemon-reload
  8. Führe den folgenden Befehl aus, um den TigerVNC-Service beim Booten zu aktivieren:

    sudo systemctl enable vncserver@:1
  9. Führe den folgenden Befehl aus, um den TigerVNC-Service zu starten:

    sudo systemctl start vncserver@:1
  10. Führe den folgenden Befehl aus, um dich zu vergewissern, dass der TigerVNC-Service ausgeführt wird:

sudo systemctl status vncserver@:1
  1. Führe den folgenden Befehl aus, um dich zu vergewissern, dass TigerVNC am TCP-Port 5901 lauscht:
ss -lnp '( sport = :5901 )'

Installieren von TigerVNC Viewer auf dem lokalen Computer

TigerVNC Viewer ist für Windows, macOS und Linux verfügbar. Um das Tool herunterzuladen, siehe Versionen auf GitHub.

Lade je nach Betriebssystem (OS) die folgende TigerVNC Viewer-Version herunter:

  • Installiere für Windows tigervnc64-x.y.z.exe (64-Bit) oder tigervnc-x.y.z.exe (32-Bit).
  • Installiere für macOS TigerVNC-x.y.z.dmg.
    Hinweis: Ersetze x.y.z durch die neueste Versionsnummer.
  • Für Linux findest du das TigerVNC-Paket in den Repositorys vieler Verteilungen. Informationen zur Installation von Paketen findest du in den Verteilungsanweisungen. Oder lade die entsprechende Binärdatei von GitHub herunter und installiere sie.

Auf die GUI zugreifen

Um auf die GUI zuzugreifen, musst du zunächst vom lokalen Computer aus eine Verbindung zur Instance herstellen, wobei die Portweiterleitung für den TCP-Port 5901 aktiviert ist. Diese Konfiguration erstellt einen verschlüsselten SSH-Tunnel für VNC-Datenverkehr. Verwende dann den VNC Viewer, um eine Verbindung zur GUI herzustellen.

Erstellen eines verschlüsselten SSH-Tunnels

Wichtig: Stelle sicher, dass die Firewall des lokalen Computers TCP-Verbindungen zu Port 5901 zulässt.

Wenn du PuTTY verwendest, um eine Verbindung zur Instance herzustellen, führe die folgenden Schritte aus, bevor du die Verbindung öffnest:

  1. Erweitere im Navigationsbereich Category (Kategorie) die Option Connection (Verbindung), und wähle dann SSH aus.
  2. Erweitere SSH und wähle dann Tunnels.
  3. Gib für Quellport 5901 ein.
  4. Gib für Ziel localhost:5901 ein.
  5. Wähle Hinzufügen aus.

Wenn du einen SSH-Client verwendest, um eine Verbindung zur Instance herzustellen, führe den folgenden Befehl aus, um die Portweiterleitung zu aktivieren:

ssh -L 5901:localhost:5901 -i /path/key-pair-name.pem user@instance-dns-name

Hinweis: Ersetze path durch deinen Schlüsselpfad und key-pair-name durch den Namen der privaten Schlüsseldatei. Ersetze user durch den Benutzernamen und instance-dns-name durch den DNS-Namen oder die IP-Adresse der Instance. Der Standardbenutzername für AL2 ist ec2-user.

Wenn du EC2 Instance Connect verwendest, um eine Verbindung zur Instance herzustellen, musst du den folgenden AWS-CLI-Befehl ec2-instance-connect ausführen, um die Portweiterleitung zu aktivieren:

aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type direct --local-forwarding 5901:localhost:5901

Hinweis: Ersetze i-1234567890example durch deine Instance-ID. Wenn du EC2 Instance Connect Endpoint verwendest, ersetze direct durch eice.

Wenn du den Session Manager verwendest, um eine Verbindung zur Instance herzustellen, musst du eine Session Manager-Portweiterleitungssitzung starten. Gib sowohl für den lokalen als auch für den Remote-Port 5901 ein.

Verwenden von VNC Viewer, um eine Verbindung zur GUI herzustellen

Führe die folgenden Schritte aus:

  1. Öffne TigerVNC Viewer auf deinem lokalen Computer.
  2. Gib für VNC server localhost:1 ein und wähle dann Verbinden.
  3. Gib dein VNC-Passwort ein.
    Hinweis: Wenn du eine Warnung erhältst, dass die Verbindung nicht sicher ist, ignoriere sie. Du greifst über den verschlüsselten SSH-Tunnel, den du erstellt hast, auf den VNC-Server zu.

(Optional) Deaktivieren der Passwortauthentifizierung für VNC

Wichtig: Es hat sich bewährt, die Passwortauthentifizierung nur für Einzelbenutzer-Instances zu deaktivieren. Wenn die VNC-Passwortauthentifizierung deaktiviert ist, kann jeder Benutzer, der sich bei deiner Instance anmelden kann, einen SSH-Tunnel erstellen und auf deinen VNC-Desktop zugreifen.

Gehe wie folgt vor, um die Passwortauthentifizierung für VNC zu deaktivieren:

  1. Führe den folgenden Befehl aus, um die Einstellung Security Types (Sicherheitstypen) des VNC-Servers auf Keine zu ändern:

    echo SecurityTypes=None >> ~/.vnc/config
  2. Führe den folgenden Befehl aus, um den VNC-Server neu zu starten:

    sudo systemctl restart vncserver@:1

(Optional) Installieren eines Webbrowsers

AWS stellt keine Webbrowser in AL2-Repositorys bereit. Du kannst jedoch Webbrowser wie Chromium auf der Chromium Projects-Website oder Firefox-Browser auf der Mozilla-Website installieren.

Hinweis: AWS bietet keinen Support für Software, die du aus Drittanbieterquellen installiert hast.

Die folgenden Installationsschritte gelten nur für Instances, die auf der x86_64-Architektur (Intel- und AMD-Prozessoren) basieren. Du kannst die folgende Lösung nicht bei Instances verwenden, die auf der aarch64-Architektur (AWS Graviton-Prozessoren) basieren. Führe den folgenden Befehl aus, um die Architektur der Instance zu überprüfen:

uname -m

Installieren von Chromium

Führe die folgenden Schritte aus:

  1. Führe den folgenden Befehl aus, um das EPEL (Extra Packages for Enterprise Linux)-Repository zu aktivieren:

    sudo amazon-linux-extras install epel

    Hinweis: Weitere Informationen findest du in Extra Pakete für Enterprise-Linux (EPEL) auf der Fedora Project-Website.

  2. Führe den folgenden Befehl aus, um Chromium-Pakete zu installieren:

    sudo yum install chromium
  3. Wähle auf dem MATE-Desktop Applications (Anwendungen) und dann Internet aus. Chromium ist als Chromium Web Browser aufgeführt.

Installieren von Firefox

Hinweis: Du kannst Firefox nur für den aktuellen Benutzer installieren.

Gehe wie folgt vor, um Firefox für den aktuellen Benutzer auf der AL2-Instance zu installieren:

  1. Führe den folgenden Befehl aus, um die neueste Version von Firefox für Linux 64 Bit herunterzuladen:

    curl -L -o ~/firefox.tar.xz 'https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US'
  2. Führe den folgenden Befehl aus, um den Inhalt der heruntergeladenen Datei zu extrahieren:

    tar Jxf ~/firefox.tar.xz -C ~/
  3. Führe den folgenden Befehl aus, um eine Firefox-Verknüpfung auf dem Desktop zu erstellen:

    echo '[Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon=/home/ec2-user/firefox/browser/chrome/icons/default/default128.png
    Exec=/home/ec2-user/firefox/firefox
    Name=Firefox
    Comment=Firefox web browser
    GenericName=Firefox web browser
    Categories=Network;WebBrowser;' > ~/Desktop/Firefox.desktop
  4. Verwende die Desktop-Verknüpfung, um Firefox zu starten.
    Hinweis: Wenn du eine Meldung erhältst, dass der Anwendungsstarter nicht vertrauenswürdig ist, wähle Mark as Trusted (Als vertrauenswürdig markieren).

Ähnliche Informationen

Wie kann ich über eine GUI auf meine Amazon EC2-macOS-Instance zugreifen?

AWS OFFICIALAktualisiert vor 2 Monaten