Collegarsi in SSH a una VM su GCP tramite chiavi SSH

Come molti di voi sapranno, non è possibile collegarsi in SSH a una VM su GCP attraverso un client SSH, a meno che non abbiate prima creato delle chiavi. Una VM su GCP infatti, appena creata, permette il solo accesso in SSH tramite browser web, attraverso la console di GCP.

In questo articolo illustreremo come Collegarsi in SSH a una VM su GCP tramite chiavi SSH, da utilizzare su un client SSH, come Putty o SecureCRT (ovviamente ne esistono molti altri ma la procedura è sempre la stessa), o direttamente dal vostro terminale (o console), anziché usare il classico browser web, per collegarsi a una virtual machine su compute Engine di GCP. I contenuti sono semplici e non serve una certificazione Google Cloud per poter capire e affrontare i contenuti.

Indice dei contenuti

Collegarsi in SSH a una VM su GCP tramite chiavi SSH – Creiamo una coppia di chiavi (pubblica e privata)

Prima di tutto, dobbiamo premettere il fatto che, per funzionare, una connessione tramite SSH prevede uno scambio di chiavi, una pubblica da caricare sulla console GCP e una privata da istallare sul client SSH che andremo a usare.

Vediamo ora nel dettaglio come creare questa benedetta coppia di chiavi 🙂 .

creare chiavi SSH keygen
creare chiavi SSH keygen

Apriamo il nostro terminale e lanciamo quindi il comando:

ssh-keygen -t rsa -C myusername
ShellScript

Dove myusername va sostituito con l’utente presente sulla vostra VM. L’utente potete trovarlo accedendo in SSH via web alla macchina. Dopo l’accesso vi apparirà una cosa simile a USERNAME@nomemacchina.

Dopo aver lanciato il comando, ci verrà chiesto di scegliere il nome del file ed eventualmente, qualora lo volessimo, potremo decidere di impostare una password a protezione della nostra chiave privata.

A questo punto, a meno che non avremo scelto nomi diversi, il comando creerà 2 file:

  • id_rsa
  • id_rsa.pub

id_rsa sarà la vostra chiave privata

id_rsa.pub è invece la vostra chiave pubblica che avrà un formato a qualcosa di mile a:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDE5UQTLKX/ZTXXeoZu8i0kIYrvvRuO7RmVb6cJ/T3lNK2AkJ5MceHemcPdg84PcpMupBWLAX/OBJksvdPhz7dUKwFr/mGyDBFCcv3dvjUa0X3uCTt9UK5kgdzi5X/jEryW9B2w35MDI+/e27xmW59Yt+nNg79WePF8ZydcFfAUTU57kKRoAcqpAk6Jurm5bckBd1/ZKbgh02IQYr2XctwraEolDmzvfoUJeYB+MUbF4ldxnzM60xAq3TgUeuLqKAMpO7gnBTz5S+NwfH0+XDnscprG3XJA3qh4AKnGu5o8nIhBsk7VvJkYuFmK6LMCDQiH2cVq3IYV9Lt3sTOQcfbYiUMd7A90EJrFfRK0lbcVcPElYf8yPTpF7hPExUx2ZTKZqaG8GuEuB0BqR879qh3/ObAQTBWPYq2LlIyHj7lfm+7lBuk6idecdCe1qIF9fzgbSIFs+gBudTwbw15Ok2Nrzl4iYJoqjbEOTVA++S5qR2nQgmolO1K6IThWJT0GZcU= fabioiegri
ShellScript

Qualora stiate utilizzando un terminale linux, le vostre chiavi verranno posizionate nella cartella .ssh all’interno della vostra home directory.

ssh keygen putty su windows

In alternative, qualora stiate utilizzando un client Windows, potete scaricare Putty e utilizzare la funzionalità Putty Key Generator.

Putty Key Generator altro non è che un’interfaccia grafica per la creazione della coppia di chiavi, che va a sostituire i comandi inviati a riga di comando sulla console.

Come potete vedere dal testo evidenziato in giallo, anche la console ci permette di scegliere sia lo username che un’eventuale password a protezione della chiave.

Carichiamo la chiave pubblica sulla console di GCP

Ora che abbiamo la nostra coppia di chiavi, “dobbiamo dire” alla nostra VM su GCP che può accettare le chiamate in ingresso in SSH dai client che si presentano con la nostra chiave (quella appena creata).

Accediamo alla console di GCP dedicata a Compute Engine e selezioniamo la VM a cui vogliamo accedere.

Per questo esempio ho creato una VM di test chiamata semplicemente web. Clicchiamo sul nome che abbiamo scelto.

Scegliamo la VM:

selezioniamo la VM da configurare
selezioniamo la VM da configurare

Clicchiamo sul pulsante EDIT per andare a modificare la configurazione:

edit gcp virtual machine
edit gcp virtual machine

Una volta aperta la finestra di editing, andiamo nella sezione Security and access dove troveremo la sezione dedicata alle SSH keys. Quindi andiamo ad aggiungere la nostra chiave pubblica.

Non dovremo fare altro che incollare il contenuto del file id_rsa.pub creato precedentemente.

Attenzione, la chiave pubblica deve essere incollata in una sola riga.

aggiungiamo public key alla vm gcp
aggiungiamo public key alla vm gcp

Ora non ci resta da fare altro che configurare il nostro client.

Configurazione client per accedere in SSH alla VM su GCP

A questo punto non ci resta che configurare il nostro client

Client Linux / MacOS

Nel nostro client Linux o MacOS, andiamo nella cartella .ssh della nostra home directory e creiamo, se non esiste già, il config e scriviamo una cosa simile (qualche riga più in basso vi spiegherò ogni singola riga) a

Host aliasdelnostroweb
  HostName IP.pubblico.del.server
  Port 22
  User myusername
  PubKeyAuthentication yes
  IdentityFile /Users/fabioiegri/.ssh/my_id_rsa.key
ShellScript

Le parti in grassetto dovranno essere modificate.

  • Host -> Scrivete un alias per il nostro server. Io, per esempio, ho scritto web
  • Hostname -> qui va inserito l’IP pubblico del server. Lo trovate nella pagina Compute Engine di GCP
  • Port -> 22 è la porta a cui risponde il servizio SSH
  • User -> inserite lo username utilizzato quando avete credo la chiate (ultima parola del comando ssh-keygen)
  • PubKeyAuthentication yes -> Questa riga non va modificata
  • IdentityFile -> è il path della vostra chiave privata.
    • Su Linux potrebbe essere: /home/USERNAME/.ssh/id_rsa
    • Lu MacOS: /Users/USERNAME/.ssh/id_rsa

Facciamo conto che abbiate creato il vostro config file in questa modalità:

Host <strong>myserver</strong>
  HostName <strong>200.200.200.200</strong>
  Port 22
  User <strong>fabio</strong>
  PubKeyAuthentication yes
  IdentityFile /<strong>Users/fabio/.ssh/my_id_rsa.key</strong>
ShellScript

Per collegarci alla macchina, sarà sufficiente lanciare il comando:

ssh fabio@myserver
ShellScript

A questo punto potremmo creare un alias del tipo:

alias <strong>sshserver</strong> ='ssh fabio@myserver'
ShellScript

E per collegarci alla macchina sarà sufficiente scrivere nel nostro terminale: sshserver

Client Windows

Per la configurazione su Windows, vi lancio un interessante e chiarissimo tutorial presente su YouTube:

How to SSH Without a Password with Putty on Windows

Qui vi mostriamo, oltre che come creare la coppia di chiavi, anche come inserirle in Putty.

Ovviamente, le chiavi create andranno comunque caricate sulla console di Compute Engine di GCP.

Spero che il piccolo tutorial vi sia d’aiuto.

Se avete dei dubbi commentate pure. Sarà felice di rispondervi.

Se volete mettervi in contatto con me, vi lascio la mia pagina di LinkedIn.

Buon lavoro.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *