SSH-Unterstützung

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

Cloud Workstations verwendet einen Tunnel, um TCP-Traffic zwischen einem Port auf Ihrem lokalen Computer und einem Port auf Ihrer Workstation weiterzuleiten, ohne Ihre Workstation offen im Internet zu präsentieren. Verbindungen werden mit Anmeldedaten aus der gcloud-Befehlszeile authentifiziert und gemäß den IAM-Richtlinien der Zielarbeitsstation autorisiert.

Sobald der TCP-Tunnel zwischen Ihrem lokalen Port und der Workstation hergestellt ist, können Sie ihn verwenden, um Traffic von einem SSH-Client, curl oder einer anderen Anwendung, die TCP verwendet, weiterzuleiten.

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

Verwenden Sie für alle anderen Anwendungsfälle den Befehl gcloud workstations start-tcp-tunnel, um den TCP-Tunnel herzustellen, und führen Sie die Anwendung, die den Tunnel verwendet (z. B. curl), in einem separaten Terminal aus.

Hinweise

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

  2. After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. Sie müssen die IAM-Rolle Cloud Workstations-Nutzer für die Workstation haben, mit der Sie eine Verbindung herstellen.

    IAM aufrufen

  4. Über SSH eine Verbindung zur Workstation herstellen

    Verwenden Sie den Befehl gcloud workstations ssh, um eine sichere SSH-Verbindung zu Ihrer Workstation herzustellen. Dadurch wird ein TCP-Tunnel gestartet und ein SSH-Client ausgeführt.

    Klicken Sie auf Codebeispiel kopieren, um den Befehl in die Zwischenablage zu kopieren, und fügen Sie ihn 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 nichts angegeben ist, 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 Workstation-Clusters, der die Workstation enthält.

    • CONFIG_NAME: Der Name der Arbeitsstationskonfiguration, die diese Arbeitsstationen enthält.

    • WORKSTATION_PORT (Optional): Der Port auf der Workstation, an den der Traffic gesendet werden soll. Wenn nichts angegeben ist, wird Traffic an Port 22 gesendet. Alle vorkonfigurierten Cloud Workstations-Images enthalten einen SSH-Server, der auf dem Workstation-Port 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 automatisch ein nicht verwendeter Port ausgewählt.

    • WORKSTATION_NAME: Der Name der Arbeitsstation.

    Optional: Wenn Sie Flags und Positionsparameter an die zugrunde liegende ssh-Implementierung übergeben möchten, hängen Sie sie nach einem doppelten Bindestrich (--) an den Befehl an.

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

    Wenn Sie mit einer anderen TCP-Anwendung als ssh eine Verbindung zu einer Workstation herstellen möchten, verwenden Sie den Befehl gcloud workstations start-tcp-tunnel:

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

      Klicken Sie auf Codebeispiel kopieren, um den Befehl in die Zwischenablage zu kopieren, und fügen Sie ihn 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 nichts angegeben ist, 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 Workstation-Clusters, der die Workstation enthält.

      • CONFIG_NAME: Der Name der Workstation-Konfiguration, 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 automatisch ein nicht verwendeter Port ausgewählt.

      • WORKSTATION_NAME: Der Name der Arbeitsstation.

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

    2. Mit dem gcloud-CLI-Befehl wird ein Konnektivitätstest mit der Workstation durchgeführt, ein Tunnel geöffnet und dann eine Portnummer angezeigt:

      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 laufen und öffnen Sie ein weiteres Terminal, um die Anwendung auszuführen, die eine Verbindung zu Ihrer Workstation herstellt.

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

      curl localhost:LOCAL_PORT
      Hello, world!
      
    4. Wenn Sie fertig sind, kehren Sie zum Terminal zurück, in dem Sie den TCP-Tunnel gestartet haben, und unterbrechen Sie die gcloud-Befehlszeile, indem Sie Strg+C drücken.

    SSH-Server auf verschiedenen Ports verwenden

    Benutzerdefinierte Container-Images können auch SSH-Server auf einem beliebigen Port verwenden. Damit Verbindungen über den gcloud-CLI-Tunnel unterstützt werden, müssen Sie benutzerdefinierte SSH-Server so konfigurieren, dass die Passwortauthentifizierung zulässig ist, und den Zielnutzer mit einem leeren Passwort festlegen. Cloud Workstations verwendet Cloud IAM, um dafür zu sorgen, dass nur autorisierter Traffic an den SSH-Server gesendet wird.

    Nächste Schritte