In questo tutorial spiegherò come creare le chiavi SSH e come poterle inviare a un server remoto per poter effettuare una connessione SSH senza digitare password
Stabilire una connessione SSH (Secure Shell) è essenziale per accedere e gestire un server remoto.
Le chiavi crittografate sono le credenziali di accesso utilizzate per stabilire una connessione sicura.
Creamo le chiavi ssh!
Sul tuo client (ad esempio ubuntu), che usi per collegarti al server da gestire, apri il terminale e scrivi:
ssh-keygen -t rsa -b 4096
Quanto digitato creerà una coppia di chiavi a 4096 bit (molto sicura!).
Nella generazione della chiave il sistema ti chiederà se vuoi aggiungere una passphrase alla chiave (una password da digitare ogni volta che userai le chiavi ssh). Se vuoi utilizzare le chiavi ssh per stabilire una connessione a un server remoto senza utilizzo di password non specificare nessuna passphrase e primi solo il tasto invio.
Le chiavi generate verranno memorizzate in una cartella nascosta ~/.ssh/
Le chiavi create saranno due:
– una chiave pubblica, che puoi distribuire a chiunque: in questo caso, la salveremo sul server;
– una chiave privata, che dovrai tenere al sicuro.
La chiave privata garantisce che tu sia l’unica persona in grado di crittografare i dati decrittografati dalla chiave pubblica.
Inviamo la chiave pubblica ssh sul server remoto
Per poter inviare la nostra chiave pubblica al server remoto, è necessario conoscere l’indirizzo ip del server e naturalmente avere le credenziali di accesso remoto.
Il comando da utilizzare è il seguente:
ssh-copy-id username@<server_IP>
Tale comando effettuerà il login sul server (verrà richiesta la password per accedere) e copierà la chiave pubblica, generata sul client, nel file delle chiavi autorizzate del server.
Se è la prima volta che ti connetti al server verrà visualizzato questo messaggio:
The authenticity of host '192.168.0.15 (192.168.0.15)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)?
Digita yes e premi Invio .
Il sistema copierà ~/ ssh/id_rsa.pub dal sistema client nella directory ~/.ssh/authorized_keys del sistema server .
Il sistema visualizzerà il seguente messaggio:
Number of key(s) added: 1
Ok, abbiamo inviato la chiave pubblica al server remoto.
Non ci resta che testare la connessione al server che non dovrebbe chiederci la password.
Lanciamo il comando:
ssh <username>@<ip_server>
se il server ha una porta diversa dalla 22, inserisci -p <numero della porta>
Il server non richiederà alcuna password poiché sta negoziando una connessione sicura utilizzando le chiavi SSH. Potrebbe richiedere la passphrase di sicurezza se è stata specificata in fase di creazione delle chiavi.
Questa tecnologia la puoi sfruttare anche nell’uso di Visual Studio Code (leggi il mio articolo qui)
Spero che questo articolo ti sia stato di aiuto.