How to per Linux, Windows e Mac
La coppia di chiavi RSA pubblica/privata dovrebbero essere usate sempre quando ci si collega in ssh ad un SO, per questo ho scritto questa piccola guida su come generarle e su come usarle.
Premesso che i server a cui ci colleghiamo devono essere configurati per non accettare l’accesso a password per nessuno degli utenti presenti, tanto meno per root. I server ssh ormai gestiscono tutti i tipi di autenticazione compresi quelli con token e a due fattori. Potremmo usare un app tipo Google Authenticator che genera un token random valido solo per noi ed a tempo, noi vedremo oggi il classico accesso a coppia di chiavi RSA per ssh.
Chiavi RSA per Linux
Su tutti i SO c’è un comodo agent per gestire le chiavi ssh, ssh-agent. L’agent rimane in ascolto e quando ci si connette ad un server che ha la nostra chiave pubblica installata apre la parte privata senza il nostro intervento manuale. Se la chiave generata ha una password ci verrà chiesta altrimenti l’accesso sarà effettuato senza chiedere nulla.
$ cd $ mkdir .ssh $ ssh-keygen -t rsa -b 4096 -C "TUA EMAIL" -f .ssh/nome.cognome
Il comando sopra genererà due chiavi nella cartella nascosta .ssh della nostra home; nome.cognome e nome.cognome.pub. Una volta generate le chiavi possiamo aggiungere la parte pubblica sui server verso i quali dobbiamo connetterci, o darla al nostro sistemista di riferimento.
$ ssh-copy-id -i ~/.ssh/nome.cognome UTENTE@HOST
In questo modo carichiamo la chiave pubblica sul server(HOST) per l’utente scelto(NOME) sempre a patto che riusciamo a connetterci utilizzando la semplice password.
Ora occorre inserire la nostra chiave privata nell’agent, niente di più semplice.
$ ssh-add $ ssh-add -l 4096 SHA256:/k3I5T4/OrUfpcrr2y7YQkd5qHFkh2edgmS6FgmPDLM TUA EMAIL (RSA)
Per connettersi utilizzando la chiave basta utilizzare il classico comando senza specificare la chiave.
$ ssh UTENTE@SERVER
L’agent utilizzerà automaticamente la nostra coppia di chiavi RSA per ssh.
Chiavi RSA per Windows 10 v1809
Da questa versione Microsoft ha finalmente introdotto i comandi standard del client ssh in modo nativo. Quindi, possiamo usare gli stessi comandi utilizzati per Linux con qualche piccola accortezza. Aprire una sessione Prompt dei comandi, Start-> Sitema Windows -> Prompt dei comandi.
c:\Users\Federico Fiordoliva>mkdir .ssh c:\Users\Federico Fiordoliva>ssh-keygen -t rsa -b 4096 -C "TUA EMAIL" -f .ssh/nome.cognome
Purtroppo su Windows non esiste lo script ssh-copy-id, perciò occorre inviare la chiave pubblica al sistemista o copiarla a mano sul server.
A questo punto possiamo utilizzare sempre l’agent ma su Windows occorre abilitarlo. Apriamo Start -> Strumenti di Amministrazione Windows -> Servizi. Ora dovete cercare il servizio denominato OpenSSH Authentication Agent e renderlo avviabile al boot (Tipo di avvio: Automatico).
c:\Users\Federico Fiordoliva>ssh-add .ssh/nome.cognome Identity added: .ssh/nome.cognome (.ssh/nome.cognome) c:\Users\Federico Fiordoliva>ssh-add -l 4096 SHA256:/k3I5T4/OrUfpcrr2y7YQkd5qHFkh2edgmS6FgmPDLM .ssh/nome.cognome (RSA)
Con il comando ssh-add -l verifichiamo che l’agent abbia caricato correttamente la chiave privata.
A questo punto basta connetterci al server.
c:\Users\Federico Fiordoliva>ssh UTENTE@SERVER
Chiavi RSA per Windows
Per tutti gli altri Windows possiamo utilizzare una comoda applicazione Putty. Potete scaricare Putty da questo link Download facendo attenzione alla versione MSI Windows Installer (32 o 64 bit). Una volta installato apriamo di nuovo un Promtp dei comandi e digitiamo:
c:\Users\Federico Fiordoliva>puttygen
Una volta lanciato il comando si aprirà una comoda interfaccia grafica per la generazione delle chiavi.
Modificare le impostazioni, RSA, 4096 e cliccare su Generate. Per creare le chiavi occorre muovere il mouse sulla parte grigia finchè la chiave no sarà generate, questo server per generare codice random.

Una volta generate le chiavi possiamo definire gli altri valori, come il nome e la passphrase per poi salvarle.

Cliccando su “Save public key” salveremo la chiave pubblica da dare al sistemista, e possiamo anche copiarla per incollarla sul server. Ricordiamoci anche di salvare la parte privata cliccando su “Save private key”.


Una volta generate le messa la parte pubblica sul server possiamo lanciare Putty.
Su Putty possiamo creare una sorta di libreria dei nostri server con le impostazioni per connettersi.

Dal menù Session possiamo configurare il nome utente e l’indirizzo del server a cui connettersi e dare un nome alla sessione.

Nel menù SSH->Auth possiamo specificare quale chiave privata utilizzare per questa sessione. Tornando al menù Session possiamo salvare la sessione e connettersi cliccando su Open. A questo punto abbiamo salvato le impostazioni per connettersi a questo server, la vota successiva basterà cliccare sulla sessione e sul pulsante Load per riconnettersi utilizzando le nostre chiavi.
Chiavi RSA per Mac OS
Per Mac vale la stessa identica procedura che abbiamo visto per Linux, ovviamente occorre avviare la Console di Mac nella cartella Utility, per il resto è invariato.
Per Windows abbiamo visto Putty che può essere utilizzato sia su 10 che su gli altri della famiglia, a vostra discrezione se usare la grafica o no.
Stessa cosa vale per Linux e Mac, ci sono molte applicazioni grafiche per gestire le connessioni ssh, utilizzate quella che preferite.
Sicurezza
C’è un fattore di cui non ho espressamente parlato durante l’articolo ed è la passphrase. Non è ho parlato perché a mio avviso richiede una particolare attenzione. Possiamo generare le chiavi senza password, sono abbastanza sicure durante il processo di autenticazione, ma sono sicure sui nostri PC?
Chi ha accesso al nostro computer? Dove salviamo le nostre chiavi?
Diciamo che per rispondere a tutte queste domande occorre verificare caso per caso, però a queste domande vaa data una risposta esauriente.
La chiave privata senza password è utilizzabile da chiunque ne entri in possesso, quindi occorre tenerla al sicuro, o meglio crearla con una bella password forte. Altra accortezza è criptare il disco del vostro pc, in questo modo nel caso di furto sarà molto difficile accedere al contenuto.
Nel caso il pc sia condiviso utilizzare utenti differenti, le chiavi non saranno leggibili da tutti gli utenti nel sistema.
- Coppia di chiavi RSA per ssh, come generarle - 18 Ago,2019
- Let’s Encrypt su pfSense – webConfigurator - 04 Apr,2017
- Isc Dhcpd Openldap su Ubuntu 16.04 - 03 Ott,2016
Leave a Comment