SSH über den Browser

SSH über den Browser ermöglicht Ihnen, von der Google Cloud Platform Console aus eine Verbindung über SSH zu einer VM-Instanz in Google Compute Engine herzustellen. Sie brauchen keine Erweiterungen für den Webbrowser oder zusätzliche Software zu installieren, um diese Funktion nutzen zu können. "SSH über den Browser" ist eine Alternative zu anderen Methoden, um eine Verbindung zu einer Instanz herzustellen.

Verbindung zu einer Linux-VM-Instanz herstellen

Compute Engine verwaltet Ihre SSH-Schlüssel für Sie, wenn Sie aus dem Browser 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 aus dem Browser verwendet werden, nicht verwalten. Der Nutzerzugriff für die Verbindung über den Browser wird stattdessen über Identitäts- und Zugriffsverwaltungsrollen (Identity and Access Management – IAM) gesteuert. Die Mitglieder und IAM-Rollen für ein Projekt können Sie auf der IAM-Seite der Google Cloud Platform Console ansehen:

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

Sobald Sie Zugriff erhalten haben, können Sie eine Verbindung zu einer Linux-Instanz direkt über den Webbrowser in der Cloud Platform Console herstellen:

  1. Rufen Sie in der GCP Console die Seite "VM-Instanzen" auf.

    Weiter 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. Danach trennen Sie die Verbindung zu der Instanz mit dem exit-Befehl.

Unterstützte Umgebungen

SSH über den Browser unterstützt Folgendes:

  • Webbrowser: Neueste Version von Google Chrome, Firefox, Microsoft Edge, Microsoft Internet Explorer 11+ und Safari 8+. Bitte beachten Sie, dass der Modus "Privates Surfen" von Safari nicht unterstützt wird.
  • VM-Konfigurationen: Alle nativ auf der Google Cloud Platform verfügbaren Linux-VM-Images.

Bekannte Probleme

  • Latenz beim Starten: Die aktuelle Verbindungszeit mit SSH über den Browser beträgt 5 bis 30 Sekunden. Die Verbindungszeiten für neuere Versionen von Google Daemon, die auf der VM-Instanz ausgeführt werden, liegen näher an 5 Sekunden. Ansonsten können Sie mit Verbindungszeiten von bis zu 30 Sekunden rechnen.

  • Neue VM-Instanzen stehen nicht sofort zur Verfügung: Neue Instanzen benötigen einige Zeit zum Starten, bevor eine SSH-Verbindung hergestellt werden kann. Wenn Sie keine Verbindung zu einer neuen Instanz herstellen können, versuchen Sie es nach ein paar Minuten noch einmal.

  • Verbindungsaussetzer: Derzeit haben 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.

  • Verbindungen zu Instanzen ohne externe IP-Adresse: Derzeit können Sie SSH über den Browser nicht nutzen, um Verbindungen zu Instanzen herzustellen, die keine externe IP-Adresse haben. Sie können dieses Problem umgehen. Stellen Sie dazu mit dieser Funktion eine SSH-Verbindung zu einer anderen Instanz in Ihrem Projekt her, die eine externe IP-Adresse hat. Das kann zum Beispiel eine Instanz sein, auf der Ihr Front-End ausgeführt wird. Melden Sie sich dann mit dem Befehl ssh -A INTERNAL_IP bei der gewünschten Instanz über deren interne IP-Adresse an. Sie müssen diesen Befehl innerhalb von etwa 2 Minuten nach dem Anmelden bei der ersten Instanz ausführen, bevor der SSH-Schlüssel abläuft und Ihre Anmeldedaten für weitergeleitete Verbindungen nicht mehr gültig sind.

  • Strg+W schließt das Fenster: Strg+W, Strg+F4, Strg+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 verbessert die Arbeit mit der Konsole für SSH über den Browser und Google Cloud Shell, da sie Ihnen direkten Zugriff auf Tastenkürzel wie Strg+W ermöglicht, die normalerweise für den Browser reserviert sind.

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 Compute Engine-Standard-Images erstellt werden. Wenn Sie sshd manuell deaktiviert oder ein benutzerdefiniertes Image konfiguriert haben, das diesen Dienst nicht ausführt, 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 über Port 22 eine Verbindung zur Instanz her. Wenn Sie sshd einen benutzerdefinierten Port überwachen lassen, können Sie auf "Im Browserfenster am benutzerdefinierten Port öffnen" im Drop-down-Menü der SSH-Schaltfläche klicken, um eine Verbindung zu diesem Port herzustellen.

  • 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 einen anderen Port als 22 überwachen lassen, müssen Sie den Zugriff auf diesen Port mit einer benutzerdefinierten Firewallregel ermöglichen.

  • 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 dynamisch von der GCP Console zugewiesen und können von Sitzung zu Sitzung variieren. Damit Sie diese Funktion nutzen können, müssen Sie entweder Verbindungen von jeder IP-Adresse aus oder aus dem Google-IP-Adressbereich zulassen, den Sie mithilfe der öffentlichen SPF-Einträge abrufen können.

  • Die Instanz ist heruntergefahren. Überprüfen Sie, ob die Instanz läuft. Weitere Informationen zum Beheben von Problemen fehlerhafter Instanzen finden Sie in dieser Anleitung.

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

  • Die Instanz führt den Google Daemon nicht aus. Der Google Daemon ist auf allen Google Compute Engine-Standard-Images installiert und aktiv. Benutzerdefinierte Images werden nicht von SSH über den Browser unterstützt. Wenn Sie überprüfen möchten, ob der Daemon läuft, rufen Sie die Seite der seriellen Konsolenausgabe auf und suchen Sie nach Ausgabezeilen mit dem String accounts-from-metadata: als Präfix. Wenn Sie ein Standard-Image verwenden, aber diese Ausgabepräfixe nicht in der seriellen Konsolenausgabe sehen, wurde der Daemon möglicherweise angehalten. Starten Sie die Instanz neu, um den Daemon neu zu starten.

  • Das Startlaufwerk der Instanz hat keinen freien Speicherplatz. Sobald die Verbindung hergestellt ist, aktualisiert der Daemon die Datei ~/.ssh/authorized_keys mit dem öffentlichen SSH-Schlüssel, der für die aktuelle Sitzung verwendet wird. Wenn das Laufwerk keinen freien Speicherplatz mehr hat, schlägt die Aktualisierung fehl. Sie erkennen dies an einer Fehlermeldung wie "Kein Speicherplatz" in der seriellen Konsolenausgabe für die Instanz. Mit den folgenden Methoden lässt sich das Problem unter Umständen beheben:

    • 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 verbrauchen, 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 nicht weiterhin Dateien löscht.
    • Weitere Informationen über den Zugriff auf das Laufwerk der Instanz finden Sie in der Anleitung zur Fehlerbehebung.
  • Die Berechtigungen im Verzeichnis $HOME oder $HOME/.ssh des sich verbindenden Nutzers sind falsch. Der Google Daemon muss den öffentlichen SSH-Schlüssel in der Datei $HOME/.ssh/authorized_keys für den sich verbindenden Nutzer speichern können. Das Verzeichnis $HOME/.ssh sollte die Unix-Berechtigungen 0700 und die Datei authorized_keys die Unix-Berechtigungen 0600 haben. Bei beiden sollte der Nutzer der Inhaber sein. Wenn die Berechtigungen oder der Inhaber falsch konfiguriert sind, kann es zu Verbindungsproblemen kommen. Zur Fehlerbehebung ändern Sie den Nutzernamen auf einen neuen Namen, damit dieser neue Nutzer und sein Basisverzeichnis erstellt werden. Verwenden Sie dann den neuen Nutzer, um eine Verbindung herzustellen und die Probleme mit den Berechtigungen für die bestehenden Nutzerverzeichnisse zu beheben.

Kopieren/Einfügen

Mithilfe der Tastenkürzel, die vom Browser und der Plattform unterstützt werden (Strg+C/Strg+V unter Windows und Linux, Cmd+C/Cmd+V unter macOS und Strg+Umschalttaste+V unter Chrome OS), können Sie Text kopieren und einfügen. Im Allgemeinen funktionieren diese Befehle bei den meisten Konfigurationen, Ihre spezielle Konfiguration kann aber andere Ergebnisse liefern.

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 Strg-Umschalttaste-Bild auf/ Strg-Umschalttaste-Bild ab und unter macOS mit Fn-Umschalt-Aufwärts/ Fn-Umschalt-Abwärts.

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 zum Verhalten von OS Login finden Sie unter Erwartete Anmeldeverhalten.

Standard-Nutzernamen ändern

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

  1. Stellen Sie eine Verbindung zu einer VM-Instanz her.
  2. Klicken Sie oben rechts im SSH-Fenster auf das Symbol Einstellungen Symbol "Einstellungen".
  3. Wählen Sie Linux-Nutzernamen ändern aus. Auf einem Linux-System beträgt die maximale Länge des Anmeldenamens 32 Zeichen. Daher werden sowohl der Standardname als auch der konfigurierte Nutzername abgeschnitten, um diese Grenze nicht zu überschreiten.
  4. (Optional) Kopieren Sie die Daten in das neue Basisverzeichnis. Jeder neue Nutzername ist ein anderer Unix-Nutzer. Wenn Sie also in Ihrem Basisverzeichnis Daten gespeichert haben, können Sie die Daten 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