SSH über den Browser

Mit SSH über den Browser können Sie in der Google Cloud Platform Console über SSH eine Verbindung zu einer VM-Instanz in Compute Engine herstellen. Sie müssen keine Erweiterungen für den Webbrowser oder zusätzliche Software installieren, um diese Funktion nutzen zu können. SSH über den Browser ist eine Alternative zu anderen Methoden für die Herstellung einer Verbindung zu einer Instanz.

Verbindung zu Linux-VM-Instanz herstellen

Compute Engine verwaltet Ihre SSH-Schlüssel für Sie, wenn Sie vom Browser aus eine Verbindung zu einer Linux-Instanz herstellen. Dafür werden bei Bedarf SSH-Schlüsselpaare erstellt und angewendet. Sie können die SSH-Schlüssel, die für die Verbindung über den Browser verwendet werden, nicht selbst verwalten. Stattdessen wird der Nutzerzugriff über den Browser von Cloud IAM-Rollen (Identity und Access Management) gesteuert. Die Mitglieder und IAM-Rollen für ein Projekt können Sie auf der IAM-Seite der Google Cloud Platform Console einsehen:

Zur Seite "IAM"

Um eine Verbindung über den Browser herzustellen, müssen Sie Projektmitglied und gleichzeitig Compute-Instanzadministrator sein. Wenn Ihre Instanz als Dienstkonto ausgeführt werden kann, müssen Sie außerdem ein Dienstkontonutzer sein. Falls Sie keinen Zugriff für eine Verbindung über den Browser haben, bitten Sie einen Projektinhaber, Sie dem Projekt hinzuzufügen und Ihnen Zugriff zu gewähren.

Wenn Sie die erforderlichen Zugriffsrechte haben, stellen Sie in der GCP Console direkt über Ihren Webbrowser eine Verbindung zu einer Linux-Instanz her:

  1. Wechseln Sie in der GCP Console zur Seite VM-Instanzen.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.

Alternativ können Sie eine SSH-Verbindung zu einer Instanz öffnen, indem Sie auf den Namen und dann auf der Detailseite der Instanz auf SSH klicken.

Jetzt können Sie Befehle über das Terminal in der Linux-Instanz ausführen. Wenn Sie die Instanz nicht mehr benötigen, trennen Sie die Verbindung mit dem Befehl exit.

Unterstützte Umgebungen

SSH über den Browser unterstützt folgende Umgebungen:

  • Webbrowser: Neueste Version von Google Chrome, Firefox, Microsoft Edge, Microsoft Internet Explorer ab Version 11 sowie Safari ab Version 8. Bitte beachten Sie, dass Safari nicht im Inkognito-Modus unterstützt wird.
  • VM-Konfigurationen: Alle nativ auf der Google Cloud Platform (GCP) verfügbaren Linux-VM-Images.

Bekannte Probleme

  • Latenz beim Starten: Derzeit liegt die Verbindungszeit mit SSH über den Browser bei 5 bis 30 Sekunden. Aktuelle Versionen der Gastumgebung unterstützen schnellere Verbindungen.

  • Neue VM-Instanzen sind nicht sofort verfügbar: Das Starten neuer Instanzen dauert ein wenig. Erst dann kann SSH eingerichtet werden. Wenn Sie keine Verbindung zu einer neuen Instanz herstellen können, versuchen Sie es nach einigen Minuten noch einmal.

  • Verbindungsaussetzer: Derzeit bieten wir kein spezielles SLA für die Lebensdauer einer Verbindung. Verwenden Sie Terminalmultiplexer wie tmux oder screen, wenn Sie das Fenster des Terminals längere Zeit geöffnet lassen möchten.

  • Verbindung zu Instanzen ohne externe IP-Adresse herstellen: Wenn die Compute Engine-Instanz nur eine interne IP-Adresse hat, können Sie die Verbindung mit einer der folgenden Optionen herstellen:

    • SSH über den Browser mit konfigurierter TCP-Weiterleitung für Cloud Identity-Aware Proxy. Wenn eine Instanz ohne externe IP-Adresse so konfiguriert ist, dass TCP-Tunneling durch Cloud IAP möglich ist, können Sie auch mit SSH über den Browser eine Verbindung zur Instanz herstellen.

    • SSH über den Browser mit Bastion Host. Um diese Option zu verwenden, müssen sich sowohl die Ziel- als auch die Bastion-Instanz im selben VPC-Netzwerk oder in verbundenen VPC-Netzwerken befinden.

      Führen Sie die folgenden Schritte aus, um mithilfe von SSH über den Browser eine Verbindung mit einem Bastion Host herzustellen:

      1. Verwenden Sie SSH über den Browser, um eine Verbindung zur Bastion-Instanz herzustellen, die über eine externe IP-Adresse verfügt. Mit diesem Schritt wird ein temporäres SSH-Schlüsselpaar generiert und der öffentliche Schlüssel in das Projekt bzw. die Instanzmetadaten für den Bastion Host hochgeladen.
      2. Stellen Sie über die Bastion-Instanz eine Verbindung zur Zielinstanz her, die nur eine interne IP-Adresse hat. Führen Sie den folgenden Befehl aus, um über die Bastion-Instanz eine Verbindung zur Zielinstanz herzustellen:

        ssh -A [INTERNAL_IP]
        

        Dabei ist [INTERNAL_IP] die interne IP-Adresse der Zielinstanz. Der Befehl muss innerhalb von ca. 2 Minuten nach dem Verbindungsaufbau zur Bastion-Instanz ausgeführt werden. Dann können Sie den im ersten Schritt generierten temporären Schlüssel verwenden.

  • Mit Ctrl+W das Fenster schließen: Ctrl+W, Ctrl+F4, Ctrl+Tab und andere Tastenkombinationen, die als Tastenkürzel des Browsers dienen, werden vom SSH-Client nicht an das Zielsystem weitergegeben. Klicken Sie auf das Tastatursymbol in der oberen rechten Ecke des Fensters, um diese oder andere Tastenkombinationen zu senden. Wenn Sie den Browser Google Chrome verwenden, können Sie die Erweiterung "SSH for Google Cloud Platform" installieren. Diese Erweiterung erleichtert die Verwendung der Konsole für SSH über den Browser und Cloud Shell, da Sie direkten Zugriff auf Tastenkürzel wie Ctrl+W erhalten, die normalerweise für den Browser reserviert sind.

  • Bei großen Dateien kann die Dateiübertragung mitunter langsam sein. Wir empfehlen zum Übertragen großer Dateien gcloud compute scp.

Behandlung der Fehlermeldung "Es kann keine Verbindung über Port 22 hergestellt werden"

Dieser Fehler kann unter den folgenden Bedingungen auftreten:

  • Die Instanz startet, aber sshd wird noch nicht ausgeführt. Lassen Sie die Instanz den Startvorgang abschließen, bevor Sie es noch einmal versuchen.

  • Auf der Instanz wird sshd nicht ausgeführt. sshd wird standardmäßig auf Instanzen ausgeführt, die aus Standard-Images von Compute Engine erstellt wurden. Wenn Sie sshd manuell deaktiviert oder ein benutzerdefiniertes Image konfiguriert haben, auf dem dieser Dienst nicht ausgeführt wird, funktioniert SSH über den Browser nicht.

  • sshd überwacht einen anderen Port als den, zu dem Sie eine Verbindung herstellen. Standardmäßig stellt SSH über den Browser eine Verbindung zur Instanz über Port 22 her. Wenn Sie sshd auf einem benutzerdefinierten Port ausführen, können Sie eine Verbindung zu diesem Port herstellen. Wählen Sie hierfür in der Drop-down-Liste der SSH-Schaltfläche die Option "Im Browserfenster an benutzerdefiniertem Port öffnen" aus.

  • Es gibt keine Firewallregel, die den SSH-Zugriff an diesem Port erlaubt. Der SSH-Zugriff auf Port 22 ist standardmäßig auf allen Compute Engine-Instanzen aktiviert. Wenn Sie den Zugriff deaktiviert haben, funktioniert SSH über den Browser nicht. Wenn Sie sshd an einem anderen Port als 22 ausführen, müssen Sie den Zugriff auf diesen Port mithilfe einer benutzerdefinierten Firewallregel aktivieren.

  • Die Firewallregel, die den SSH-Zugriff zulässt, ist aktiviert. Sie ist jedoch nicht dazu konfiguriert, Verbindungen von GCP Console-Diensten zuzulassen. Die Quell-IP-Adressen für browserbasierte SSH-Sitzungen werden von der GCP Console dynamisch zugewiesen und können von Sitzung zu Sitzung variieren. Damit Sie dieses Feature nutzen können, müssen Sie Verbindungen von jeder IP-Adresse oder von IP-Adressen des Google-IP-Adressbereichs aus zulassen, den Sie mithilfe der öffentlichen SPF-Einträge abrufen können.

  • Die Instanz ist heruntergefahren. Überprüfen Sie, ob die Instanz ausgeführt wird. Informationen zum Beheben von Problemen fehlerhafter Instanzen finden Sie unter Allgemeine Tipps zur Verwendung von Compute Engine.

Behandlung der Fehlermeldung "Keine Verbindung, neuer Versuch..."

  • Die Gastumgebung wird möglicherweise nicht auf der Instanz ausgeführt. Überprüfen Sie, ob die Gastumgebung installiert ist und ausgeführt wird.

  • Das Startlaufwerk der Instanz hat keinen freien Speicherplatz. Sobald die Verbindung hergestellt wurde, aktualisiert die Gastumgebung die Datei ~/.ssh/authorized_keys mit dem öffentlichen SSH-Schlüssel, der für die aktuelle Sitzung verwendet wird. Wenn auf dem Laufwerk kein freier Speicherplatz mehr verfügbar ist, schlägt die Aktualisierung fehl. Um Probleme mit dem Speicherplatz zu ermitteln, suchen Sie nach einer Fehlermeldung wie "Kein Speicherplatz" in der seriellen Konsolenausgabe für die Instanz. Hier sind einige Methoden, mit denen Sie Speicherplatzprobleme beheben können:

    • Vergrößern Sie den nichtflüchtigen Speicher der Instanz mit Startfunktion. Wenn das von der Instanz verwendete Betriebssystem-Image die automatische Größenänderung unterstützt, ist dies die einfachste Lösung. Das Betriebssystem passt die Größe der Root-Partition nach dem Neustart der Instanz automatisch an die neue Größe an.
    • Wenn Sie wissen, welche Dateien den Speicherplatz belegen, erstellen Sie ein Startskript, das die unnötigen Dateien löscht und Platz zum Starten der Instanz freigibt. Starten Sie die Instanz neu, damit das Skript ausgeführt wird und die Dateien bereinigt. Achten Sie darauf, dass Sie den richtigen Befehl verwenden und die richtigen Dateien löschen. Nachdem die Instanz gestartet ist und Sie über SSH eine Verbindung zu ihr herstellen konnten, setzen Sie das Metadatenelement startup-script zurück, damit es keine Dateien mehr löscht.
    • Wie Sie auf den Instanzspeicher zugreifen, erfahren Sie unter Allgemeine Tipps zur Verwendung von Compute Engine.
  • Berechtigungen oder Eigentümerschaft an $HOME, $HOME/.ssh oder $HOME/.ssh/authorized_keys sind falsch. Die Gastumgebung muss den öffentlichen SSH-Schlüssel in der Datei $HOME/.ssh/authorized_keys für den Nutzer speichern können, der eine Verbindung herstellt. Legen Sie für das Verzeichnis $HOME als Unix-Berechtigungen 0755 oder 0700 fest. Legen Sie für das Verzeichnis $HOME/.ssh als Unix-Berechtigungen 0700 fest. Legen Sie für die Datei authorized_keys als Unix-Berechtigungen 0600 fest. Wichtig ist, dass der Inhaber der Verzeichnisse $HOME und $HOME/.ssh sowie der Datei authorized_keys der Nutzer ist, der auch die Verbindung herstellt. Versuchen Sie, die Verbindung als ein anderer Nutzer herzustellen. Ändern Sie den Nutzernamen und beheben Sie mögliche Berechtigungsprobleme für den Nutzer, der keine Verbindung herstellen kann.

Kopieren und einfügen

Sie können Text mithilfe der vom Browser und von der Plattform unterstützten Tastenkombinationen kopieren und einfügen (Ctrl+C/Ctrl+V unter Windows und Linux, Cmd+C/Cmd+V unter macOS und Ctrl+Shift+V unter Chrome OS). Im Allgemeinen funktionieren diese Befehle bei den meisten Konfigurationen, Ihre spezielle Konfiguration kann aber andere Ergebnisse liefern.

Dateien übertragen

Wenn Sie im Fenster "SSH über den Browser" eine SSH-Verbindung zu einer Instanz herstellen können, haben Sie die Möglichkeit, über diese Verbindung Dateien an die Instanz zu übertragen.

Weitere Informationen finden Sie unter Dateien im Browser über SSH übertragen.

Scrollen

Sie können auf dem Terminal mithilfe eines Mausrads oder eines Trackpads scrollen. Alternativ funktioniert dies unter Windows und Linux auch mit den Tastenkürzeln Ctrl+Shift+PageUp/Ctrl+Shift+PageDn und unter macOS mit Fn+Shift+Up/Fn+Shift+Down.

Nutzername für die Anmeldung

Standard-Nutzername

Standardmäßig wird ein Nutzername für SSH-Sitzungen aus der E-Mail-Adresse erzeugt, die sich beim Konto angemeldet hat, wobei die Domaininformationen weggelassen werden. Wenn die E-Mail-Adresse beispielsweise user@gmail.com ist, lautet der entsprechende Nutzername user.

Standard-Nutzername bei aktiviertem OS Login

Wenn Sie OS Login aktiviert haben und kein Nutzername von einem G Suite-Administrator festgelegt wurde, wird standardmäßig eine längere Version eines Nutzernamens festgelegt. Dieser Nutzername enthält die Angaben zur Domain. Wenn die E-Mail-Adresse beispielsweise user@gmail.com ist, lautet der entsprechende Nutzername user_gmail_com. Weitere Informationen zu OS Login-Verhaltensweisen finden Sie unter Erwartete Anmeldeverhalten.

Standard-Nutzernamen ändern

Sie können den Nutzernamen in einem SSH-Fenster entsprechend der nachfolgenden Anleitung ändern:

  1. Stellen Sie eine Verbindung zur VM-Instanz her.
  2. Klicken Sie rechts oben im SSH-Fenster auf das Symbol Einstellungen Symbol "Einstellungen".
  3. Wählen Sie Linux-Nutzernamen ändern aus. Auf einem Linux-System ist die Länge des Anmeldenamens auf 32 Zeichen begrenzt. Daher werden sowohl der Standardname als auch der konfigurierte Nutzername abgeschnitten.
  4. (Optional) Kopieren Sie die Daten in das neue Basisverzeichnis. Jeder neue Nutzername ist ein anderer Unix-Nutzer. Wenn Sie Daten in Ihrem Basisverzeichnis gespeichert haben, können Sie diese mit dem Befehl cp in das neue Verzeichnis kopieren. Wenn Sie beispielsweise Ihren Nutzernamen von user_gmail_com in user ändern, führen Sie die folgenden Befehle aus:

    # This will overwrite files in the target directory, so be careful.
    $ sudo cp -r /home/user_gmail_com/. /home/user
    
    $ sudo chown -R user:user /home/user
    
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation