Compatibilité SSH

Cette page explique comment utiliser la CLI gcloud pour vous connecter à votre station de travail à partir d’une machine locale en utilisant SSH (ou tout autre protocole TCP).

Cloud Workstations utilise un tunnel pour transférer le trafic TCP entre un port de votre votre ordinateur local et un port sur votre poste de travail sans exposer ouvertement votre station de travail à Internet. Les connexions sont authentifiées à l'aide des identifiants de la CLI gcloud et autorisées conformément aux stratégies IAM de la station de travail cible.

Une fois le tunnel TCP établi entre votre port local et la station de travail, vous pouvez l'utiliser pour transférer le trafic depuis un client SSH, curl ou toute autre une application qui utilise TCP.

Pour plus de commodité, Cloud Workstations fournit gcloud workstations ssh qui établit le tunnel TCP et exécute un client SSH avec une seule commande CLI gcloud.

Pour tous les autres cas d'utilisation, utilisez gcloud workstations start-tcp-tunnel pour établir le tunnel TCP et exécuter l'application qui utilisera (par exemple, curl) dans un terminal distinct.

Avant de commencer

  1. Si vous ne disposez pas encore d'un poste de travail auquel vous connecter, configurez-en un.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. Assurez-vous de disposer du rôle IAM Utilisateur de stations de travail Cloud sur la station de travail à laquelle vous vous connecterez.

    Accéder à IAM

Se connecter à votre station de travail via SSH

Pour établir une connexion SSH sécurisée à votre poste de travail, utilisez la commande gcloud workstations ssh, qui démarre un tunnel TCP et exécute un client SSH.

Pour copier la commande dans le tampon de copier-coller, cliquez sur Copier l'exemple de code, puis collez la commande dans une fenêtre de terminal locale :

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

Remplacez les valeurs suivantes :

  • PROJECT_ID: ID du projet Google Cloud pour le projet contenant la station de travail. En cas d'omission, le projet en cours est utilisé.

  • REGION: région où se trouve le cluster de la station de travail situé, par exemple, us-central1.

  • CLUSTER_NAME: nom du cluster de stations de travail contenant la station de travail.

  • CONFIG_NAME: nom de la configuration de station de travail contenant ces stations de travail.

  • WORKSTATION_PORT (facultatif): port sur la station de travail vers lequel le trafic doit être envoyé. En cas d'omission, le trafic sera envoyé au port 22. Toutes les images Cloud Workstations préconfigurées incluent un serveur SSH qui exécute sur le port de station de travail 22.

  • LOCAL_PORT (facultatif): port localhost à partir duquel le trafic sera envoyé. Les numéros de port valides vont de 1024 à 65535. Si vous omettez l'option --local-host-port ou spécifiez le port 0 d'un port inutilisé sélectionné automatiquement.

  • WORKSTATION_NAME: nom de la station de travail.

Facultatif : Pour transmettre des indicateurs et des positions à l'implémentation ssh sous-jacente, ajoutez-les à la commande après un double tiret (--).

Utiliser un tunnel TCP pour transférer le trafic TCP arbitraire vers votre station de travail

Pour vous connecter à une station de travail à l'aide d'une application TCP autre que ssh, utilisez la commande gcloud workstations start-tcp-tunnel :

  1. Exécutez la commande CLI gcloud suivante pour créer une instance via un tunnel TCP.

    Pour copier la commande dans le tampon de copier-coller, cliquez sur Copier l'exemple de code, puis collez la commande dans une fenêtre de terminal locale :

    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
    

    Remplacez les valeurs suivantes :

    • PROJECT_ID: ID du projet Google Cloud pour le projet contenant la station de travail. En cas d'omission, le projet en cours est utilisé.

    • REGION: région où se trouve le cluster de la station de travail situé, par exemple, us-central1.

    • CLUSTER_NAME: nom du cluster de stations de travail contenant la station de travail.

    • CONFIG_NAME: nom de la station de travail configuration contenant ces stations de travail.

    • LOCAL_PORT (facultatif): port localhost à partir duquel le trafic sera envoyé. Les numéros de port valides vont de 1024 à 65535. Si vous omettez l'option --local-host-port ou spécifiez le port 0 est sélectionné automatiquement.

    • WORKSTATION_NAME: nom de la station de travail.

    • WORKSTATION_PORT: port de la station de travail sur lequel le trafic doit être envoyé. Images Cloud Workstations préconfigurées inclure un serveur SSH qui s'exécute sur le port de station de travail 22.

  2. La commande CLI gcloud effectue un test de connectivité avec station de travail, ouvre un tunnel, puis affiche un numéro de port:

    Listening on port [LOCAL_PORT].
    

    Tout le trafic envoyé à localhost:LOCAL_PORT est transféré vers la station de travail. Le port n'est accessible que par les applications exécutées sur votre ordinateur local.

  3. Laissez la CLI gcloud s'exécuter et ouvrez un autre terminal pour exécuter la qui se connecte à votre station de travail.

    Par exemple, si vous exécutez sur votre station de travail un serveur qui diffuse port WORKSTATION_PORT. À l'étape précédente, vous avez utilisé créé un tunnel TCP qui transfère le trafic entre votre port local LOCAL_PORT et le port de la station de travail WORKSTATION_PORT, vous pourriez exécuter curl sur votre réseau local machine à se connecter au serveur sur votre poste de travail:

    curl localhost:LOCAL_PORT
    Hello, world!
    
  4. Lorsque vous avez terminé, revenez au terminal à partir duquel vous avez lancé et interrompre la CLI gcloud en appuyant Ctrl+C.

Utiliser des serveurs SSH sur des ports différents

Images de conteneurs personnalisées peuvent également utiliser les serveurs SSH sur n'importe quel port. Pour permettre les connexions depuis le gcloud, vous devez configurer des serveurs SSH personnalisés pour autoriser l'authentification par mot de passe et définir l'utilisateur cible avec un mot de passe vide. Cloud Workstations utilise Cloud IAM pour garantir que seul le trafic autorisé est envoyé au serveur SSH.

Étape suivante