Auf dieser Seite wird beschrieben, wie Sie mit der gcloud CLI über SSH (oder ein anderes TCP-Protokoll) von einem lokalen Computer aus eine Verbindung zu Ihrer Workstation 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 CLI 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 ihn verwenden, um Traffic von einem SSH-Client, `curl` oder einer anderen Anwendung, die TCP verwendet, weiterzuleiten.
Cloud Workstations bietet den
gcloud workstations ssh
Befehl, 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
gcloud workstations start-tcp-tunnel
Befehl, um den TCP-Tunnel einzurichten und die Anwendung, die den
Tunnel verwenden soll (z. B. curl), in einem separaten Terminal auszuführen.
Hinweis
Wenn Sie noch keine Workstation haben, zu der Sie eine Verbindung herstellen können, richten Sie eine Workstation ein.
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der
gcloudCLI anmelden.Prüfen Sie, ob Sie die Cloud IAM-Rolle „Cloud Workstations-Nutzer“ für die Workstation haben, zu der Sie eine Verbindung herstellen möchten.
Über SSH eine Verbindung zu Ihrer Workstation herstellen
Verwenden Sie den
gcloud workstations ssh
Befehl, 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 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 Traffic an Port22gesendet. Alle vorkonfigurierten Cloud Workstations-Images enthalten einen SSH-Server, der auf dem Workstation-Port22ausgeführt wird.LOCAL_PORT(Optional): Der localhost-Port, von dem Traffic gesendet wird. Gültige Portnummern sind1024bis65535. Wenn Sie das Flag--local-host-portweglassen oder einen Port von0angeben, wird automatisch ein nicht verwendeter Port ausgewählt.WORKSTATION_NAME: Der Name der Workstation.
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
gcloud workstations start-tcp-tunnel
Befehl:
Führen Sie den folgenden
gcloudCLI-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_PORTErsetzen 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 Workstationkonfiguration, die diese Workstations enthält.LOCAL_PORT(Optional): Der localhost-Port, von dem Traffic gesendet wird. Gültige Portnummern sind1024bis65535. Wenn Sie das Flag--local-host-portweglassen oder einen Port von0angeben, wird automatisch ein nicht verwendeter Port ausgewählt.WORKSTATION_NAME: Der Name der Workstation.WORKSTATION_PORT: Der Workstation-Port, an den Traffic gesendet werden soll. Vorkonfigurierte Cloud Workstations-Images enthalten einen SSH-Server, der auf dem Workstation-Port22ausgeführt wird.
Der
gcloudCLI-Befehl führt einen Konnektivitätstest mit der Workstation durch, öffnet einen Tunnel und zeigt dann eine Portnummer an:Listening on port [LOCAL_PORT].Der gesamte an
localhost:LOCAL_PORTgesendete Traffic wird an die Workstation weitergeleitet. Der Port ist nur für Anwendungen zugänglich, die auf Ihrem lokalen Computer ausgeführt werden.Lassen Sie die
gcloudCLI ausgeführt 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 den 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
curlauf Ihrem lokalen Computer ausführen, um eine Verbindung zum Server auf Ihrer Workstation herzustellen:curl localhost:LOCAL_PORT Hello, world!Wenn Sie fertig sind, kehren Sie zum Terminal zurück, in dem Sie den TCP Tunnel gestartet haben, und unterbrechen Sie die
gcloudCLI, 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. Um Verbindungen vom gcloud CLI-Tunnel zu unterstützen, 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 sicherzustellen, dass nur autorisierter Traffic an den SSH-Server gesendet wird.
Nächste Schritte
- Container-Umgebungsvariablen in SSH-Sitzungen festlegen für benutzerdefinierte Container-Images
- X11-Weiterleitung aktivieren für benutzerdefinierte Container-Images