it-swarm-eu.dev

Come ottenere le chiavi ssh per una nuova istanza di Google Compute Engine?

Sono un nuovo utente di prova di Google Cloud proveniente dal mondo Amazon EC2 e sono totalmente sconcertato su come accedo tramite ssh a una nuova istanza di Google Compute Engine VM.

Ho creato una nuova istanza tramite la console Web di Google Cloud (da un'immagine di CentOS 6.x, se ciò è importante). Ho visto uno spazio vuoto sul modulo di creazione in cui ho potuto incollare una chiave ssh esistente ma poiché questa era la mia prima istanza, non ne avevo ancora uno. Presumo che mi avrebbe portato attraverso il processo di creazione della chiave come fa Amazon EC2. Non è stato così. Sembra che abbia creato l'istanza, ma non riesco a capire come ottenere le chiavi SSH per questo. La pagina web di istanza ha un pulsante che dice "ssh" e mi consente di collegarmi brevemente tramite una finestra del browser Web a comparsa che simula una sessione ssh. Tuttavia, mi consente di accedere solo a un account a livello utente, non a root. Il pop-up aveva una voce di menu per cambiare l'utente e l'ho cambiato in "root", dopo di che non fa altro che generare errori di connessione e ora non riesco a collegarmi affatto alla mia istanza.

Ho cercato ma non riesco a trovare alcuna documentazione diretta che spieghi questo aspetto delle istanze di Google Compute. Ho cercato la console web ma non ho trovato il meccanismo di creazione/selezione della chiave ssh, né alcun modo per creare o scaricare le chiavi per un'istanza.

Devo creare manualmente le mie chiavi ssh sulla mia parte e incollarle nel modulo durante la creazione o c'è qualche altro passaggio ovvio che mi manca?

21
steevithak

Per impostazione predefinita, una nuova istanza di Google Compute Engine (GCE) VM non ha le chiavi SSH preassegnate ad essa, quindi non è possibile "recuperarle" perché non esistono - dipende da te creare loro, o utilizzare uno strumento come gcloud (vedi sotto) che ti chiederà di crearli se non hai ancora le chiavi SSH.

Sono disponibili diverse opzioni per la connessione alla macchina virtuale GCE appena creata.

Un'opzione è connettersi utilizzando il pulsante "SSH" nella GUI della Console per gli sviluppatori accanto all'istanza nell'elenco delle istanze, che aprirà una finestra del browser e una sessione terminale dell'istanza.

Se desideri connetterti tramite client SSH sulla riga di comando, puoi utilizzare lo strumento gcloud (parte di Google Cloud SDK ):

gcloud compute ssh example-instance

Puoi vedere il set completo di flag e opzioni sulla gcloud compute ssh pagina di aiuto, insieme a diversi esempi.

Se non si dispone già di chiavi SSH, verrà richiesto di crearle e quindi di connettersi all'istanza. Se hai già le chiavi, puoi usare le chiavi SSH esistenti, che trasferirà all'istanza.

Per impostazione predefinita, gcloud si aspetta che le chiavi si trovino nei seguenti percorsi:

  • $HOME/.ssh/google_compute_engine - chiave privata
  • $HOME/.ssh/google_compute_engine.pub - chiave pubblica

Se si desidera riutilizzare le chiavi da una posizione diversa con gcloud, prendere in considerazione l'idea di creare collegamenti simbolici o indicare gcloud utilizzando il flag --ssh-key-file .

Nota: se non usi affatto gcloud, devi aggiungere manualmente le chiavi SSH ai metadati dell'istanza come descritto in Impostazione delle chiavi ssh a livello di istanza che puoi fare tramite gcloud o manualmente tramite Google Cloud console .

Puoi anche creare le tue chiavi usando ssh-keygen che è anche quello che gcloud userà sotto le copertine. Puoi collegarti all'istanza usando ssh direttamente invece di gcloud ma dovrai specificare parametri aggiuntivi per farlo:

ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \
    -o CheckHostIP=no -o StrictHostKeyChecking=no \
    [email protected]_ADDRESS

che richiederà i seguenti parametri:

  • KEY_FILE - [Required] Il file in cui sono memorizzate le chiavi sul computer, ad es. ~/.ssh/google_compute_engine.

  • USER - [Required] Il nome utente per accedere a quell'istanza. In genere, questo è il nome utente dell'utente locale che esegue gcloud compute.

  • IP_ADDRESS - [Obbligatorio] L'indirizzo IP esterno dell'istanza. 

Per ulteriori dettagli, vedere documenti SSH .

40
Misha Brukman

Per accedere all'istanza usando ssh- [Tutti i passaggi eseguiti su Linux Ubuntu 16.04]

  1. Crea una chiave SSH ssh-keygen -t rsa -f ~/.ssh/gcloud_instance1 -C varunon9 qui gcloud_instance1 è il nome del file chiave e varunon9 è username

  2. Stampa il contenuto del file di chiave pubblica cd ~/.ssh && cat gcloud_instance1.pub

  3. Fare clic su Modifica VM icona dettagli istanza  enter image description here

  4. Incolla il contenuto del file di chiave pubblica (output di cd ~/.ssh && cat gcloud_instance1.pub) nell'area di testo ssh-keys

     enter image description here  enter image description here

  5. Clicca su Salva

  6. Da terminale ora puoi accedere alla tua istanza tramite ssh ssh -i gcloud_instance1 [email protected] dove gcloud_instance1 è il file della chiave privata (nella directory .ssh) e varunon9 è username e 35.200.201.56 è l'IP esterno della tua istanza.

6
Varun Kumar

Una volta aperta la console, provare a visualizzare il comando gcloud nella scheda ssh. Il client gcloud si aprirà con il seguente comando.

gcloud compute --project ssh --zone 

E se la prima volta, creerà la chiave SSH per te. Devi solo scaricare il file in questa posizione ~/.ssh/google_compute_engine utilizzando l'opzione del file di download del client gcloud in alto a destra. Una volta che hai il file chiave, basta emettere 

ssh -i username @ external_IP

0