SSH è il meccanismo più comunemente utilizzato per accedere ad un server remoto Linux dove le nostre piattaforme software sono al lavoro. Con questo strumento è possibile inviare comandi attraverso un canale “sicurizzato” con l’impiego di algoritmi crittografici. L’accesso può essere effettuato su qualsiasi macchina in cui sia in esecuzione un server SSH (tipicamente un’implementazione OpenSSH) utilizzando le credenziali di sistema. Ad esempio, per accedere alla console della macchina 192.168.255.12 mediante l’account sysadmin è sufficiente digitare:
> ssh sysadmin@192.168.255.12
al che verrà richiesta la password per il completamento del login. La porta TCP utilizzata di default è la 22 ma è buona norma modificarla: in questo caso, se ne fornirà il numero corretto all’accesso utilizzando l’opzione -p.
L’utilizzo di una console SSH può ulteriormente essere reso agevole mediante l’accesso con chiave pubblica che offre, oltre tutto, almeno due vantaggi: maggiore sicurezza (non legata alla segretezza della parola chiave) e possibilità di automatizzare i comandi da inviare al server non richiedendo la presenza di un operatore che digiti personalmente la password.
Per avere un accesso con chiave pubblica è necessario seguire due passaggi che qui nel seguito esemplificheremo (supporremo accesso da macchina Linux ad un server di indirizzo 192.168.255.12 con utente sysadmin):
- sulla macchina client, produrremo una coppia di chiavi SSH:
> ssh -t rsa
otterremo due file: una chiave privata (che conserveremo noi con la massima riservatezza sulla macchina, tipicamente nella cartella .ssh della home di pertinenza del nostro utente) ed una pubblica, quella da distribuire, che trasferiremo sul server cui fare accesso. L’opzione -t serve ad indicare il tipo di chiavi da ottenere, in alternativa si può utilizzare -b per specificare la lunghezza della chiave in bit (ad esempio: ssh -b 4096);
- trasferiremo la chiave pubblica sul server in modo che questo possa riconoscerci all’accesso senza bisogno di usare la password. Ci sono vari sistemi per copiarla e forse uno dei più comodi è il comando:
> ssh-copy-id -i ~/.ssh/id_rsa.pub sysadmin@192.168.255.12
dove andranno personalizzati sia il percorso della chiave pubblica sulla macchina client (quello dell’esempio è, del resto, il valore di default) sia nome utente e indirizzo della macchina server.
L’accesso via chiave pubblica può essere molto utile e la conoscenza dei meccanismi procedurali di SSH non spetta solo ai sistemisti ma a tanti che si occupano di backend per mobile o applicazioni web pertanto meglio essere sempre pronti a tutto.
E voi ancora non vi siete stancati di digitare ogni volta la vostra password SSH?
Commentate e fateci sapere!
No Responses to “SSH: accedere ad un server con chiave pubblica”