SSH senza password ma sicuro —
SSH o meglio OpenSSH è “il modo” di collegarsi a macchine remote.
Chiunque abbia a che fare con macchine perimetrali, cioè con quelle macchine che sono l’interfaccia tra una LAN e il mondo sa che nei log di sistema trovare dei tentativi di connessione alla porta 22 (la porta di default del demone) è cosa giornaliera.
Fermo restando il portare il servizio su una porta diversa > di 1024 e di usare password ben strutturate alfanumericamente e con segni di interpunzione, un ulteriore passo per rendere difficile la vita alla gente che nella vita non ha di meglio da fare che tentare di sfondare macchine è quello di usare l’autenticazione tramite chiavi.
In buona sostanza si tratta di demandare l’autenticazione direttamente alle chiavi senza passare dalla password.
Il tool che ci permette di fare questa operazione è ssh-keygen
clark@pc0:~/.ssh$ ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/clark/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/clark/.ssh/id_rsa.
Your public key has been saved in /home/clark/.ssh/id_rsa.pub.
The key fingerprint is:
d7:69:38:fb:8e:c4:d5:40:41:da:85:07:f7:41:94:83 clark@pc0
The key’s randomart image is:
+–[ RSA 4096]—-+
| .=+*+.|
| +.E.+.|
| . o. o|
| o + |
| S + = . |
| o = |
| + |
| . o |
| ..o |
+—————–+
Vediamo un minimo di dettaglio della cosa, l’opzione -b 4096 raddoppia la lunghezza della chiave (normalmente 2048) di per se sarebbe un di più ma serve a rendere la vita difficile a eventuali malintezionati e mi pagano per questo…
Enter passphrase (empty for no passphrase):…
qui ci sono i pro e i contro, pro se non la metti puoi usare questo sistema mediante script per automatizzare un gran numero di operazioni, contro se ti fregano la chiave possono accedere a tutte le tue macchine, se perdi o non puoi accedere per qualsiasi motivo alle chiavi non puoi neanche accedere alle altre macchine, inutile dire che minimo 3 copie di queste chiavi messe in tre posti differenti sono il “minimo sindacale” accettato.
Si tratta di copiare adesso le chiavi sull’host destinatario, cosa che possiamo fare con 2 metodi o tramite il classico scp o via ssh-copy-id
scp -P 3122 ~/.ssh/id_rsa.pub <clark>@<ip del server/nome_dns_>:~/.ssh/authorized_keys
oppure
ssh-copy-id -i ~/.ssh/id_rsa.pub utente@server -p 3122
se la porta è la 22 canonica basta un
ssh-copy-id -i ~/.ssh/id_rsa.pub utente@server
Sul server il file sshd_config dovrà avere questi parametri
HostbasedAuthentication yes RSAAuthentication yes PubkeyAuthentication yes
A questo punto se tutto è andato liscio basterà fare un ssh clark@server e si entrerà direttamente senza dover mettere password.
Qui si possono inoltre scegliere 2 strade differenti, vale a dire lasciare abilitata la login tramite password o disabilitarla e permettere la login solo tramite chiavi, se si sceglie la seconda si tratta di modificare /etc/ssh/sshd_config combiando in questo modo queste 3 voci:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
quindi restartare il demone /etc/init.d/ssh restart e a questo punto non sarà piu’ possibile entrare se non si è nel file authorized_keys della macchina.
Addendum
dopo diversi anni un po di cose sono cambiate quindi la parte relativa all’sshd_config su Devuan chimaera diventa:
Port 3122
PermitRootLogin prohibit-password
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePam no
X11Forwarding yes
Lasciando commentato tutto il resto
Comments are disabled on this post