SSH über den Browser

Mit dem Fenster SSH über den Browser können Sie in der Google Cloud 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. SSH-Schlüssel, die für die Verbindung aus dem Browser verwendet werden, können nicht von Ihnen verwaltet werden. Stattdessen wird der Nutzerzugriff über den Browser von IAM-Rollen (Identity und Access Management, Identitäts- und Zugriffsverwaltung) gesteuert. Die Mitglieder und IAM-Rollen für ein Projekt können auf der IAM-Seite in der Google Cloud Console aufgerufen werden:

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 Cloud Console direkt über Ihren Webbrowser eine Verbindung zu einer Linux-Instanz her:

  1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

    Zu 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.

    SSH-Schaltfläche neben dem Instanznamen.

Alternativ können Sie eine SSH-Verbindung zu einer Instanz herstellen, indem Sie auf deren Namen und dann auf der Seite "Instanzdetails" 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.

Wenn eine Instanz so konfiguriert ist, dass TCP-Tunneling über Identity-Aware Proxy zugelassen ist, können Sie mit SSH über den Browser eine Verbindung zur Instanz herstellen. Dies ist besonders hilfreich bei Instanzen ohne externe IP-Adresse. Informationen zur Aktivierung finden Sie unter IAP für die TCP-Weiterleitung verwenden. Hinweis: IAP ist die Standardroute für Instanzen, die mit TCP-Tunneling und mit einer externen IP-Adresse konfiguriert sind.

Unterstützte Umgebungen

SSH über den Browser unterstützt folgende Umgebungen:

  • Webbrowser
    • Aktuelle Version von Google Chrome
    • Firefox
    • Microsoft Edge
    • Microsoft Internet Explorer ab Version 11
    • Safari ab Version 8 (privates Surfen wird in Safari nicht unterstützt)
  • VM-Konfigurationen
    • Alle Linux VM-Images, die nativ in Google Cloud verfügbar sind

Bekannte Probleme

  • Langsame SSH-Schlüsselübertragungszeiten: Standardmäßig überträgt SSH im Browser bei jeder neuen Verbindung einen neuen SSH-Schlüssel an die Metadaten. Dieser Vorgang kann bei Projekten mit vielen VMs sehr langsam sein. Um die Schlüsselübertragung zu beschleunigen, können Sie projektweite SSH-Schlüssel blockieren oder OS Login aktivieren.

  • 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.

    • 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 eine externe IP-Adresse hat. 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. Ersetzen Sie dabei internal-ip durch die interne IP-Adresse der Zielinstanz.

        ssh -A internal-ip

        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.

  • Ctrl+W schließt das Fenster: Ctrl+W, Ctrl+F4, Ctrl+Tab und andere Tastenkombinationen, die als Browsertastaturkürzel fungieren, werden vom SSH-Client nicht an das Zielsystem übergeben. 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. Die Erweiterung erleichtert die Nutzung der Console für SSH über den Browser und Cloud Shell, weil Sie direkten Zugriff auf Tastaturkürzel erhalten, die normalerweise vom Browser reserviert werden, z. B. Ctrl+W.

  • Bei großen Dateien kann die Dateiübertragung langsam sein. Für die Übertragung großer Dateien wird die Verwendung von gcloud compute scp empfohlen.

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

Dieser Fehler kann unter den folgenden Bedingungen auftreten:

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

  • Die Instanz führt sshd nicht aus. sshd wird standardmäßig für Instanzen ausgeführt, die aus Standard-Compute Engine-Images 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 wird eine SSH-Verbindung vom Browser zur Instanz über Port 22 hergestellt. Wenn Sie sshd über einen benutzerdefinierten Port ausführen, können Sie eine Verbindung zu diesem Port herstellen, wenn Sie in der Drop-down-Liste der SSH-Schaltfläche das Element Im Browserfenster an benutzerdefiniertem Port öffnen auswählen.

  • 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 zwar aktiviert, aber nicht für Verbindungen von Cloud Console-Diensten konfiguriert. Die Quell-IP-Adressen für browserbasierte SSH-Sitzungen werden von der Cloud 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.

Umgang mit der Fehlermeldung "Keine Verbindung, neuer Versuch..."

  • Die Gastumgebung wird möglicherweise nicht auf der Instanz ausgeführt. Prü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.
  • Die Berechtigungen oder Eigentümerschaften für $HOME, $HOME/.ssh oder $HOME/.ssh/authorized_keys sind möglicherweise falsch.

    • Eigentümerschaften: Die Gastumgebung muss den öffentlichen SSH-Schlüssel in der Datei $HOME/.ssh/authorized_keys für den Nutzer, der eine Verbindung herstellt, speichern können. Achten Sie darauf, dass der Inhaber des Verzeichnisses $HOME, des Verzeichnisses $HOME/.ssh und der Datei authorized_keys mit dem Nutzer, der die Verbindung herstellt, identisch ist.
    • Berechtigungen: Versuchen Sie, die Verbindung als ein anderer Nutzer herzustellen. Ändern Sie den Nutzernamen und beheben Sie Berechtigungsprobleme für den Nutzer, der keine Verbindung herstellen kann.

      Verzeichnis/Datei Erforderliche Unix-Berechtigung
      Verzeichnis $HOME 0755 oder
      0700
      Verzeichnis $HOME/.ssh 0700
      Datei authorized_keys 0600

Kopieren und einfügen

Mit den Tastenkombinationen, die von Ihrem Browser und Ihrer Plattform unterstützt werden, können Sie Text kopieren und einfügen: Ctrl+C/Ctrl+V für Windows und Linux, Cmd+C/Cmd+V für macOS und Ctrl+Shift+V für Chrome OS. Im Allgemeinen funktionieren diese Befehle bei den meisten Konfigurationen. Je nach Konfiguration sind aber auch andere Ergebnisse möglich. Wenn beim Kopieren und Einfügen großer Textblöcke Probleme auftreten, verwenden Sie stattdessen die Dateiübertragung.

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 können Sie unter Windows und Linux mit den Tastenkombinationen Ctrl+Shift+PageUp/Ctrl+Shift+PageDn sowie unter Mac OS mit Fn+Shift+Up/Fn+Shift+Down im Terminal scrollen.

Nutzername für die Anmeldung

Standard-Nutzername

Standardmäßig wird ein Nutzername für SSH-Sitzungen aus der E-Mail-Adresse erzeugt, mit der die Anmeldung bei dem Konto erfolgte, wobei die Angabe der Domain weggelassen wird. Beispiel: Für die E-Mail-Adresse user@gmail.com lautet der entsprechende Nutzername user.

Standard-Nutzername bei aktiviertem OS Login

Wenn Sie OS Login aktiviert haben und kein Nutzername von einem Google Workspace-Administrator festgelegt wurde, wird standardmäßig eine längere Version eines Nutzernamens festgelegt. Dieser Nutzername enthält die Angaben zur Domain. Beispiel: Für die E-Mail-Adresse user@gmail.com 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 .
  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 zu 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
    

Vom Nutzer bereitgestellten privaten SSH-Schlüssel verwenden

Optional können Sie mit einem vom Nutzer bereitgestellten privaten SSH-Schlüssel eine Verbindung herstellen. Wählen Sie dazu in der Drop-down-Liste der Schaltfläche SSH die Option Mit dem bereitgestellten privaten SSH-Schlüssel im Browserfenster öffnen.

Führen Sie die folgenden Schritte aus, um mit einem vom Nutzer bereitgestellten SSH-Schlüssel eine Verbindung zu Ihren Instanzen herzustellen:

  1. Aktivieren Sie OS Login für Ihr Projekt oder für einzelne Instanzen.
  2. Konfigurieren Sie den öffentlichen SSH-Schlüssel mit dem OS Login-Profil des Nutzers. Fügen Sie die Projekt-ID in die Anfrage ein, um sicherzustellen, dass Ihr Profil ordnungsgemäß konfiguriert ist.