Supporto SSH

Questa pagina descrive come utilizzare la CLI gcloud per connetterti alla tua workstation da una macchina locale utilizzando SSH (o qualsiasi altro protocollo TCP).

Cloud Workstations utilizza un tunnel per inoltrare il traffico TCP tra una porta sulla tua macchina locale e una porta sulla tua workstation senza esporre apertamente la tua workstation a internet. Le connessioni vengono autenticate utilizzando le credenziali dell'interfaccia a riga di comando gcloud e autorizzate in base alle norme IAM della workstation di destinazione.

Una volta stabilito il tunnel TCP tra la porta locale e la workstation, puoi utilizzarlo per inoltrare il traffico da un client SSH, curl o qualsiasi altra applicazione che utilizza TCP.

Per comodità, Cloud Workstations fornisce il comando gcloud workstations ssh, che stabilisce il tunnel TCP ed esegue un client SSH con un singolo comando CLI gcloud.

Per tutti gli altri casi d'uso, utilizza il comando gcloud workstations start-tcp-tunnel per stabilire il tunnel TCP ed eseguire l'applicazione che utilizzerà il tunnel (ad esempio, curl) in un terminale separato.

Prima di iniziare

  1. Se non hai ancora una workstation a cui connetterti, configura una workstation.

  2. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

    gcloud init

    Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla CLI gcloud con la tua identità federata.

  3. Assicurati di disporre del ruolo IAM Utente Cloud Workstations nella workstation a cui ti connetterai.

    Vai a IAM

  4. Connettiti alla workstation tramite SSH

    Per stabilire una connessione SSH sicura alla tua workstation, utilizza il comando gcloud workstations ssh, che avvia un tunnel TCP ed esegue un client SSH.

    Per copiare il comando nel buffer di copia e incolla, fai clic su Copia codice campione e poi incolla il comando in una finestra del terminale 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
    

    Sostituisci i seguenti valori:

    • PROJECT_ID: l'ID progetto Google Cloud del progetto contenente la workstation. Se omesso, viene utilizzato il progetto corrente.

    • REGION: la regione in cui si trova il cluster della workstation, ad esempio us-central1.

    • CLUSTER_NAME: il nome del cluster di workstation che contiene la workstation.

    • CONFIG_NAME: il nome della configurazione della workstation contenente questa workstation.

    • WORKSTATION_PORT (facoltativo): la porta sulla workstation a cui deve essere inviato il traffico. Se omesso, il traffico verrà inviato alla porta 22. Tutte le immagini Cloud Workstations preconfigurate includono un server SSH in esecuzione sulla porta 22 della workstation.

    • LOCAL_PORT (facoltativo): la porta localhost da cui verrà inviato il traffico. I numeri di porta validi sono compresi tra 1024 e 65535. Se ometti il flag --local-host-port o specifichi una porta 0, viene selezionata automaticamente una porta non utilizzata.

    • WORKSTATION_NAME: il nome della workstation.

    (Facoltativo) Per passare flag e argomenti posizionali all'implementazione ssh sottostante, aggiungili al comando dopo un doppio trattino (--).

    Utilizza un tunnel TCP per inoltrare traffico TCP arbitrario alla workstation

    Per connetterti a una workstation utilizzando un'applicazione TCP diversa da ssh, utilizza il comando gcloud workstations start-tcp-tunnel:

    1. Esegui il seguente comando CLI gcloud per creare un tunnel TCP autenticato.

      Per copiare il comando nel buffer di copia e incolla, fai clic su Copia codice campione e poi incolla il comando in una finestra del terminale 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
      

      Sostituisci i seguenti valori:

      • PROJECT_ID: l'ID progetto Google Cloud del progetto contenente la workstation. Se omesso, viene utilizzato il progetto corrente.

      • REGION: la regione in cui si trova il cluster della workstation, ad esempio us-central1.

      • CLUSTER_NAME: il nome del cluster di workstation che contiene la workstation.

      • CONFIG_NAME: il nome della configurazione della workstation che contiene queste workstation.

      • LOCAL_PORT (facoltativo): la porta localhost da cui verrà inviato il traffico. I numeri di porta validi sono compresi tra 1024 e 65535. Se ometti il flag --local-host-port o specifichi una porta 0, viene selezionata automaticamente una porta non utilizzata.

      • WORKSTATION_NAME: il nome della workstation.

      • WORKSTATION_PORT: la porta della workstation a cui deve essere inviato il traffico. Le immagini Cloud Workstations preconfigurate includono un server SSH in esecuzione sulla porta della workstation 22.

    2. Il comando CLI gcloud esegue un test di connettività con la workstation, apre un tunnel e poi visualizza un numero di porta:

      Listening on port [LOCAL_PORT].
      

      Tutto il traffico inviato a localhost:LOCAL_PORT viene inoltrato alla workstation. La porta è accessibile solo dalle applicazioni in esecuzione sul tuo computer locale.

    3. Lascia in esecuzione la CLI gcloud e apri un altro terminale per eseguire l'applicazione che si connette alla tua workstation.

      Ad esempio, se esegui un server sulla tua workstation che gestisce la porta WORKSTATION_PORT e nel passaggio precedente hai creato un tunnel TCP che inoltra il traffico tra la porta locale LOCAL_PORT e la porta della workstation WORKSTATION_PORT, puoi eseguire curl sulla tua macchina locale per connetterti al server sulla tua workstation:

      curl localhost:LOCAL_PORT
      Hello, world!
      
    4. Al termine, torna al terminale in cui hai avviato il tunnel TCP e interrompi la CLI gcloud premendo Ctrl+C.

    Utilizzare server SSH su porte diverse

    Le immagini container personalizzate possono utilizzare anche server SSH su qualsiasi porta. Per supportare le connessioni dal tunnel della CLI gcloud, devi configurare server SSH personalizzati per consentire l'autenticazione tramite password e impostare l'utente di destinazione con una password vuota. Cloud Workstations utilizza Cloud IAM per garantire che solo il traffico autorizzato venga inviato al server SSH.

    Passaggi successivi