SSH-Unterstützung

Auf dieser Seite wird beschrieben, wie Sie mit der gcloud-Befehlszeile von einem lokalen Computer über SSH (oder ein anderes TCP-Protokoll) eine Verbindung zu Ihrer Workstation herstellen.

Cloud Workstations verwendet einen Tunnel, um TCP-Traffic zwischen einem Port auf Ihrer lokalen Maschine und einem Port Ihrer Workstation weiterzuleiten, ohne Ihre Workstation dem Internet offen zugänglich zu machen. Verbindungen werden mit Anmeldedaten von der gcloud-Befehlszeile authentifiziert und gemäß den IAM-Richtlinien der Zielworkstation autorisiert.

Sobald der TCP-Tunnel zwischen Ihrem lokalen Port und der Workstation eingerichtet ist, können Sie damit Traffic von einem SSH-Client, curl oder einer anderen Anwendung, die TCP verwendet, weiterleiten.

Der Einfachheit halber bietet Cloud Workstations den Befehl gcloud workstations ssh, mit dem der TCP-Tunnel eingerichtet und ein SSH-Client mit einem einzigen gcloud-Befehlszeilenbefehl ausgeführt wird.

Verwenden Sie in allen anderen Anwendungsfällen den Befehl gcloud workstations start-tcp-tunnel, um den TCP-Tunnel einzurichten, und führen Sie die Anwendung, die den Tunnel verwenden wird (z. B. curl) in einem separaten Terminal aus.

Hinweise

  1. Wenn Sie noch keine Workstation haben, zu der Sie eine Verbindung herstellen können, richten Sie eine Workstation ein.

  2. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    gcloud init

  3. Achten Sie darauf, dass Sie die IAM-Rolle Cloud Workstations User auf der Workstation haben, zu der Sie eine Verbindung herstellen.

    IAM aufrufen

Über SSH eine Verbindung zur Workstation herstellen

Verwenden Sie zum Herstellen einer sicheren SSH-Verbindung zu Ihrer Workstation den Befehl gcloud workstations ssh. Dieser startet einen TCP-Tunnel und führt einen SSH-Client aus.

Wenn Sie den Befehl in den Zwischenspeicher kopieren und einfügen möchten, klicken Sie auf Codebeispiel kopieren und fügen Sie den Befehl dann in ein lokales Terminalfenster ein:

gcloud workstations ssh \
    --project=PROJECT_ID \
    --region=REGION \
    --cluster=CLUSTER_NAME \
    --config=CONFIG_NAME  \
    --port=WORKSTATION_PORT  \
    --local-host-port=localhost:LOCAL_PORT  \
    WORKSTATION_NAME

Ersetzen Sie die folgenden Werte:

  • PROJECT_ID: die Google Cloud-Projekt-ID für das Projekt, das die Workstation enthält. Wenn keine Angabe gemacht wird, wird das aktuelle Projekt verwendet.

  • REGION: Die Region, in der sich der Cluster der Workstation befindet, z. B. us-central1.

  • CLUSTER_NAME: der Name des Workstationclusters, der die Workstation enthält.

  • CONFIG_NAME: der Name der Workstationkonfiguration, die diese Workstations enthält.

  • WORKSTATION_PORT (optional): Der Port auf der Workstation, an den Traffic gesendet werden soll. Wenn nichts angegeben ist, wird der Traffic an Port 22 gesendet. Alle vorkonfigurierten Cloud Workstations-Images enthalten einen SSH-Server, der auf dem Workstationport 22 ausgeführt wird.

  • LOCAL_PORT (optional): Der Localhost-Port, von dem Traffic gesendet wird. Gültige Portnummern sind 1024 bis 65535. Wenn Sie das Flag --local-host-port weglassen oder den Port 0 angeben, wird ein nicht verwendeter Port automatisch ausgewählt.

  • WORKSTATION_NAME: der Name der Workstation.

Optional: Um Flags und Positionierungen an die zugrunde liegende ssh-Implementierung zu übergeben, hängen Sie sie nach einem doppelten Bindestrich (--) an den Befehl an.

TCP-Tunnel verwenden, um beliebigen TCP-Traffic an Ihre Workstation weiterzuleiten

Verwenden Sie den Befehl gcloud workstations start-tcp-tunnel, um mit einer anderen TCP-Anwendung als ssh eine Verbindung zu einer Workstation herzustellen:

  1. Führen Sie den folgenden Befehl in der gcloud-Befehlszeile aus, um einen authentifizierten TCP-Tunnel zu erstellen.

    Wenn Sie den Befehl in den Zwischenspeicher kopieren und einfügen möchten, klicken Sie auf Codebeispiel kopieren und fügen Sie den Befehl dann in ein lokales Terminalfenster ein:

    gcloud workstations start-tcp-tunnel \
        --project=PROJECT_ID \
        --region=REGION \
        --cluster=CLUSTER_NAME \
        --config=CONFIG_NAME \
        --local-host-port=localhost:LOCAL_PORT \
        WORKSTATION_NAME \
        WORKSTATION_PORT
    

    Ersetzen Sie die folgenden Werte:

    • PROJECT_ID: die Google Cloud-Projekt-ID für das Projekt, das die Workstation enthält. Wenn keine Angabe gemacht wird, wird das aktuelle Projekt verwendet.

    • REGION: Die Region, in der sich der Cluster der Workstation befindet, z. B. us-central1.

    • CLUSTER_NAME: der Name des Workstationclusters, der die Workstation enthält.

    • CONFIG_NAME: der Name der Workstationkonfiguration, die diese Workstations enthält.

    • LOCAL_PORT (optional): Der Localhost-Port, von dem Traffic gesendet wird. Gültige Portnummern sind 1024 bis 65535. Wenn Sie das Flag --local-host-port weglassen oder den Port 0 angeben, wird ein nicht verwendeter Port automatisch ausgewählt.

    • WORKSTATION_NAME: der Name der Workstation.

    • WORKSTATION_PORT: der Workstationport, an den der Traffic gesendet werden soll. Vorkonfigurierte Cloud Workstations-Images umfassen einen SSH-Server, der auf dem Workstation-Port 22 ausgeführt wird.

  2. Der Befehl gcloud in der Befehlszeile führt einen Konnektivitätstest mit der Workstation aus, öffnet einen Tunnel und zeigt dann eine Portnummer an:

    Listening on port [LOCAL_PORT].
    

    Der gesamte an localhost:LOCAL_PORT gesendete Traffic wird an die Workstation weitergeleitet. Der Port ist nur für Anwendungen zugänglich, die auf Ihrem lokalen Computer ausgeführt werden.

  3. Lassen Sie die gcloud-Befehlszeile ausgeführt und öffnen Sie ein anderes Terminal, um die Anwendung auszuführen, die eine Verbindung zu Ihrer Workstation herstellt.

    Wenn Sie beispielsweise auf Ihrer Workstation einen Server ausführen, der Port WORKSTATION_PORT bedient, und im vorherigen Schritt einen TCP-Tunnel erstellt haben, der Traffic zwischen dem lokalen Port LOCAL_PORT und dem Workstationport WORKSTATION_PORT weiterleitet, können Sie curl auf Ihrem lokalen Computer ausführen, um eine Verbindung zum Server auf der Workstation herzustellen:

    curl localhost:LOCAL_PORT
    Hello, world!
    
  4. Kehren Sie anschließend zu dem Terminal zurück, in dem Sie den TCP-Tunnel gestartet haben, und unterbrechen Sie die gcloud-Befehlszeile. Drücken Sie dazu Strg + C.

SSH-Server an verschiedenen Ports verwenden

Benutzerdefinierte Container-Images können auch SSH-Server an jedem Port verwenden. Damit Verbindungen vom gcloud-CLI-Tunnel unterstützt werden, müssen Sie benutzerdefinierte SSH-Server so konfigurieren, dass die Passwortauthentifizierung zulässig ist, und für den Zielnutzer ein leeres Passwort festlegen. Cloud Workstations sorgt mit Cloud IAM dafür, dass nur autorisierter Traffic an den SSH-Server gesendet wird.

Nächste Schritte