SSH config
Oggi vi propongo un post un po’ più leggero, ma al contempo molto utile. La necessità di parlare di questo argomento nasce dal fatto che mi sono reso conto che alcune cose che io dò per scontato, poi così scontante non sono.
Connessioni SSH
Se lavori su infrastrutture GNU/Linux, SSH sarà lo strumento che utilizzerai più spesso e non tutti sanno che esiste uno strumento, offerto nativamente da openssh per gestire e personalizzare le connessioni.
Connettersi ad un server usando ssh è davvero semplice:
# ssh utente@server
tutto molto bello.
E se io ho tante connessioni?
Se devi gestire tanti server, non puoi ricordare tutti gli utenti, indirizzi e configurazioni e qui viene in aiuto il file .ssh/config. Nella home di ogni utente, all’interno della cartella nascosta .ssh è possibile creare il file config che con una sintassi molto amichevole permette di creare il nostro inventario.
Prendiamo come esempio il seguente file
Host server1
Hostname 10.0.10.22
User marvin
lanciando il comando ssh server1 ssh tradurrà l’alias in
ssh [email protected]
E se io dovessi fare qualcosa di più?
Se hai una porta ssh diversa dal default (es: 455) puoi aggiungere il parametro
Host server1
Hostname 10.0.10.22
User marvin
port 455
Se quando ti connetti hai bisogno di un port forward, lo puoi specificare
Host server1
Hostname 10.0.10.22
User marvin
port 455
localForward 8080:localhost:80
e questo vale per tutte le configurazioni accettate da openssh.
Host server1
Hostname 10.0.10.22
User marvin
Port 1500
Host cloud-server1
Hostname 279.129.12.22
User alice
Host cloud-server2
Hostname 279.129.12.27
Host test-server
Hostname test-server.local
Extra
Io ho a che fare con tantissimi server e spesso da clienti diversi ci sono gli stessi ip, devo saltare da un server all’altro, ecc. Ho creato una sorta di configurazione che uso per tutti i server, sommata alle configurazioni verticali
Host *
ForwardAgent yes
ControlMaster yes
Compression yes
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
nel mio caso, ad ogni connessione, verrà passata la mia chiave ssh per eventuali altre connessioni a cascata, la connessione sarà ottimizzata, verrà utilizzata la compressione, non verrà verificata l’impronta del server e il risultato verrà inviato in /dev/null.
Per darvi un’idea di quante connessioni ho “inventoriato” negli anni
$ grep Host .ssh/config | wc -l
1227
Per tutte le configurazioni ti consiglio di andare a leggere il manuale.
Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.
Risorse: