Categorie
Linux Tips WordPress

Connessione SSH: come effettuarla da terminale

La connessione SSH è un modo per aprire una shell (un terminale) in un altro dispositivo.

SSH è l’acronimo di Secure SHell, ed è un protocollo che permette di stabilire una connessione remota in maniera crittograficamente sicura.

SSH: i metodi di autenticazione più comuni

La connessione SSH prevede che un dispositivo, definito client, possa connettersi ad un altro, definito server.

Ovviamente, è opportuno che il server consenta la connessione solo a determinati dispositivi autorizzati a farlo.

Per questo motivo, esistono due meccanismi di autenticazione che vengono utilizzati in SSH: l’autenticazione con password, e l’autenticazione con chiave pubblica – chiave privata.

Autenticazione con password

Questa forma di autenticazione prevede l’utilizzo di una stringa confidenziale, che deve essere nota sia al client che al server.

Per semplificare, il server, ricevendo un determinato contenuto cifrato con la password concordata durante una richiesta di connessione, è sicuro che il client che sta effettuando la richiesta sia autorizzato a connettersi.

Per quanto questa forma di autenticazione sia intuitiva (il funzionamento non è diverso dall’autenticazione [username, password] a cui siamo abituati) essa è meno sicura rispetto all’autenticazione con chiave pubblica – chiave privata.

Autenticazione con chiave pubblica – chiave privata

Questo meccanismo di autenticazione fa uso della crittografia asimmetrica.

Per semplificare, per stabilire una connessione SSH, occorre effettuare i seguenti passi:

  1. Il client deve generare una coppia (chiave pubblica, chiave privata)
  2. L’amministratore del server dovrà installare la chiave pubblica del client sul server
  3. Il client, durante la richiesta di connessione, dichiarerà la propria identità, cifrando delle informazioni con la propria chiave privata
  4. Il server verificherà l’identità del client decifrando le informazioni ricevute con la chiave pubblica corrispondente all’identità dichiarata. Se questa operazione avrà successo, il client sarà autenticato.

I primi due steps sono necessari solo la prima volta che si intende stabilire una connessione tra client e server, mentre il terzo ed il quarto saranno necessari ogni volta che il client si vorrà connettere al server.

Per quanto possa sembrare macchinoso, ti farò vedere nel seguito dell’articolo come farlo in maniera pratica.

Inoltre, connettersi utilizzando questo meccanismo di autenticazione è decisamente più sicuro rispetto all’utilizzo di autenticazione con password.

Connessione SSH da terminale

In questa sezione vedrai come effettuare una connessione SSH utilizzando un terminale.

Fortunatamente, il comando per connettersi ha la stessa sintassi sia su Windows 10 che su Linux.

Per questo motivo, nel caso stia utilizzando Windows, dovrai usare cmd / PowerShell, nel caso tu stia utilizzando Linux potrai utilizzare un qualunque terminale bash / zsh.

Connessione SSH da terminale – autenticazione con password

La forma generica del comando è la seguente:

ssh username@indirizzo -p numeroPorta

Solitamente la porta utilizzata per le connessioni SSH è la porta 22.

Tuttavia, in alcuni casi è utilizzata una porta diversa. Ad esempio, nel caso di SiteGround, la porta utilizzata è la 18765.

Dopo aver eseguito il comando, sarà richiesta la password da utilizzare per l’autenticazione.

Connessione SSH da terminale – autenticazione con chiave pubblica, chiave privata

Per utilizzare l’autenticazione [chiave pubblica, chiave privata], avrai bisogno di disporre di una coppia di chiavi.

Nel caso non disponessi di tale coppia di chiavi, troverai le istruzioni per generarne una nella prossima sezione.

Il comando è simile a quello dell’autenticazione con password, con un parametro aggiuntivo:

ssh username@indirizzo -p numeroPorta -i pathChiavePrivata

Il parametro -i dovrà contenere il percorso per il file contenente la chiave privata da utilizzare per autenticarsi.

Creazione coppia chiave pubblica, chiave privata

Per creare una coppia [chiave pubblica, chiave privata] puoi utilizzare il seguente comando:

ssh-keygen

Questo comando è utilizzabile sia su Windows che su Linux.

Nella creazione della coppia, ti saranno chieste le seguenti informazioni:

  1. Il percorso dove salvare la coppia di chiavi
  2. La password per utilizzare la chiave privata

Dopo aver generato la coppia di chiavi, avrai due files nel percorso specificato: uno avrà estensione .pub (chiave pubblica), mentre l’altro non avrà estensione (chiave privata).

Installazione chiave pubblica sul server

Affinché sia possibile connettersi al server tramite SSH con meccanismo di autenticazione con chiave pubblica – chiave privata, è necessario installare la chiave pubblica sul server.

Nel seguito descriverò i due scenari più comuni: l’installazione della chiave pubblica su hosting che fa uso di cPanel, e l’installazione della chiave pubblica su SiteGround.

Installazione chiave SSH su cPanel

Per installare la chiave pubblica per la connessione SSH, sono necessarie poche operazioni.

Per prima cosa, connettiti al pannello principale di cPanel utilizzando il tuo browser, e cerca “SSH”, utilizzando la barra di ricerca posta nella parte alta della pagina.

ssh cpanel

Clicca su “Accesso SSH”, quindi clicca su “Gestisci chiavi SSH”.

Potrai importare la tua chiave pubblica cliccando su “Importa Chiave.”.

Installazione chiave SSH su SiteGround

Per prima cosa, accedi alla sezione “Site Tools” di SiteGround.

Nella barra di sinistra, nella sezione “Sviluppatori”, troverai la voce “Gestione chiavi SSH”.

ssh siteground

Nella schermata presente, clicca su “Importa”, e, per concludere, su “Importa la chiave da un file”.

Approfondimenti su Linux

In questo sito sono presenti numerosi articoli che riguardano Linux.

Se volessi leggere altri contenuti in merito, ecco alcuni articoli:

Conclusioni

In questo articolo hai visto come effettuare una connessione SSH ad un altro dispositivo.

Grazie a questo protocollo, avrai la possibilità di svolgere tasks utili allo sviluppo, al debugging e al monitoraggio di sistemi.

Seguimi su