Supporto SSH

In questa pagina viene descritto come utilizzare l'interfaccia a riga di comando di gcloud per connetterti a da una macchina locale mediante SSH (o qualsiasi altro protocollo TCP).

Cloud Workstations utilizza un tunnel per inoltrare il traffico TCP tra una porta della macchina locale e una porta della workstation senza esporre apertamente la workstation a internet. Le connessioni vengono autenticate utilizzando le credenziali dell'interfaccia a riga di comando gcloud e autorizzate in base ai criteri IAM della stazione di lavoro 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 praticità, Cloud Workstations fornisce gcloud workstations ssh che stabilisce il tunnel TCP ed esegue un client SSH con un singolo comando dell'interfaccia a riga di comando 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 già una workstation a cui connetterti, configurare una workstation.

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

    gcloud init

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

    Vai a IAM

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 di esempio 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 per il progetto contenente la workstation. Se omesso, il progetto attuale è in uso.

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

  • CLUSTER_NAME: il nome del cluster di workstation contenente la workstation.

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

  • (Facoltativo) WORKSTATION_PORT: 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 della workstation 22.

  • LOCAL_PORT (facoltativo): la porta localhost da cui verrà inviato il traffico. I numeri di porta validi vanno da 1024 a 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 i flag e gli argomenti posizionali all'implementazione ssh sottostante, aggiungili al comando dopo un doppio trattino (--).

Usa un tunnel TCP per inoltrare il traffico TCP arbitrario alla tua workstation

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

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

    Per copiare il comando nel buffer di copia-incolla, fai clic su Copia esempio di codice, quindi 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 per il progetto contenente la workstation. Se omesso, il progetto attuale è in uso.

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

    • CLUSTER_NAME: il nome del cluster di workstation contenente la workstation.

    • CONFIG_NAME: il nome della workstation contenente 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 su cui deve essere inviato. Le immagini Cloud Workstations preconfigurate includono un server SSH in esecuzione sulla porta della workstation 22.

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

    Listening on port [LOCAL_PORT].
    

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

  3. Lascia in esecuzione l'interfaccia a riga di comando gcloud e apri un altro terminale per eseguire che si connette alla tua workstation.

    Ad esempio, se sulla tua workstation esegui un server che gestisce porta WORKSTATION_PORT; 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, potresti eseguire curl sulla tua pubblicità locale per connetterti al server sulla tua workstation:

    curl localhost:LOCAL_PORT
    Hello, world!
    
  4. Al termine, torna al terminale da cui hai avviato il protocollo TCP tunnel e interrompi l'interfaccia a riga di comando gcloud premendo Ctrl+C.

Utilizza server SSH su porte diverse

Immagini container personalizzate possono anche utilizzare server SSH su qualsiasi porta. Per supportare le connessioni dalla gcloud tunnel dell'interfaccia a riga di comando, devi configurare server SSH personalizzati per consentire l'autenticazione tramite password e imposta l'utente di destinazione con una password vuota. Cloud Workstations utilizza Cloud IAM per assicurare che al server SSH venga inviato solo il traffico autorizzato.

Passaggi successivi