Auf dieser Seite wird beschrieben, wie Sie mit der gcloud
-Befehlszeile über SSH (oder ein anderes TCP-Protokoll) eine Verbindung von einem lokalen Computer 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 dem Internet offen auszusetzen. 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 eingerichtet ist, können Sie ihn verwenden, um Traffic von einem SSH-Client, curl oder einer anderen Anwendung weiterzuleiten, die TCP verwendet.
Für den Komfort 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 für alle anderen Anwendungsfälle den Befehl gcloud workstations start-tcp-tunnel
, um den TCP-Tunnel einzurichten und die Anwendung, die den Tunnel verwendet (z. B. curl
), in einem separaten Terminal auszuführen.
Hinweise
Wenn Sie noch keine Workstation haben, mit der Sie eine Verbindung herstellen können, richten Sie eine Workstation ein.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Sie benötigen die IAM-Rolle Nutzer von Cloud-Arbeitsstationen auf der Workstation, mit der Sie eine Verbindung herstellen möchten.
Über SSH eine Verbindung zu Ihrer 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.
Wenn Sie den Befehl in den Zwischenspeicher kopieren möchten, klicken Sie auf
Codebeispiel 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 des Projekts, 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.WORKSTATION_PORT
(optional): Der Port auf der Workstation, an den Traffic gesendet werden soll. Wenn Sie das Flag weglassen, wird der Traffic an Port22
gesendet. Alle vorkonfigurierten Cloud Workstations-Images enthalten einen SSH-Server, der auf dem Workstation-Port22
ausgeführt wird.LOCAL_PORT
(optional): der localhost-Port, von dem aus Traffic gesendet wird. Gültige Portnummern sind1024
bis65535
. Wenn Sie das Flag--local-host-port
weglassen oder einen Port von0
angeben, wird automatisch ein nicht verwendeter Port ausgewählt.WORKSTATION_NAME
: Der Name der Workstation.
Optional: Wenn Sie Flags und Positionalparameter an die zugrunde liegende ssh
-Implementierung übergeben möchten, hängen Sie sie nach einem doppelten Bindestrich (--
) an den Befehl an.
Mit einem TCP-Tunnel beliebigen TCP-Traffic an Ihre Workstation weiterleiten
Wenn Sie eine Verbindung zu einer Workstation mit einer anderen TCP-Anwendung als ssh
herstellen möchten, verwenden Sie den Befehl gcloud workstations start-tcp-tunnel
:
Führen Sie den folgenden
gcloud
-Befehl aus, um einen authentifizierten TCP-Tunnel zu erstellen.Wenn Sie den Befehl in den Zwischenspeicher kopieren möchten, klicken Sie auf
Codebeispiel 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 des Projekts, 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 aus Traffic gesendet wird. Gültige Portnummern sind1024
bis65535
. Wenn Sie das Flag--local-host-port
weglassen oder den Port0
angeben, wird automatisch ein nicht verwendeter Port ausgewählt.WORKSTATION_NAME
: Der Name der Workstation.WORKSTATION_PORT
: den Workstation-Port, an den der Traffic gesendet werden soll. Vorkonfigurierte Cloud Workstations-Images enthalten einen SSH-Server, der auf dem Workstation-Port22
ausgeführt wird.
Der
gcloud
-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_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.Lassen Sie die
gcloud
CLI laufen und öffnen Sie ein anderes 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 im vorherigen Schritt einen TCP-Tunnel erstellt haben, der den 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!
Wenn Sie fertig sind, kehren Sie zum Terminal zurück, in dem Sie den TCP-Tunnel gestartet haben, und drücken Sie Strg + C, um die
gcloud
-Befehlszeile zu beenden.
SSH-Server auf verschiedenen Ports verwenden
Für benutzerdefinierte Container-Images können auch SSH-Server auf einem beliebigen Port verwendet werden. Wenn Sie Verbindungen über den gcloud
-CLI-Tunnel unterstützen möchten, müssen Sie benutzerdefinierte SSH-Server konfigurieren, um die Passwortauthentifizierung zuzulassen, und dem Zielnutzer ein leeres Passwort zuweisen.
Cloud Workstations verwendet Cloud IAM, um dafür zu sorgen, dass nur autorisierter Traffic an den SSH-Server gesendet wird.
Nächste Schritte
- Containerumgebungsvariablen in SSH-Sitzungen für benutzerdefinierte Container-Images festlegen
- X11-Weiterleitung für benutzerdefinierte Container-Images aktivieren