Come fare per evitare di farsi chiedere la password usando ssh o scp?
Quando ci dobbiamo connettere spesso a server Linux, tramite il comando SCP oppure SSH, può essere diventare noiso e si può perdere molto tempo se ogni volta dobbiamo inserire la password.
Usando una coppia di chiavi (privata e pubblica) riusciremo ad evitare tutto questo.
Come fare per evitare di farsi chiedere la password usando ssh o scp?
Quando ci dobbiamo connettere spesso a server Linux, tramite il comando SCP oppure SSH, può essere diventare noiso e si può perdere molto tempo se ogni volta dobbiamo inserire la password.
Usando una coppia di chiavi (privata e pubblica) riusciremo ad evitare tutto questo.
Come generare le chiavi
Innanzi a tutto installiamo su linux
apt-get install ssh
apt-get install openssh-server
a questo punto supponiamo di dover fare le operazioni con lo user administrator, ricordatevi di essere autenticati con lo user che volete poi usare, posizionatevi nella cartella :
cd /home/administrator
verificate che esista la cartella .ssh
posizionatevi nella cartella corretta :
cd /home/administrator/.ssh
e generate le chiavi :
Dovete procedere con il seguente ragionamento : uso molti server e non voglio usare password diverse, allora ne metto una che ricordo, se invece uso solo un server interno e ad esempio ho bisogno di far eseguire tra due server LINUX una copia SCP senza che mi chieda la password allora non metto niente, ma solo su srver interni.
Il comando da usare è il seguente :
ssh-keygen -b 4096 (4096 lunghezza della chiave di incriptazione e non usate l'opzione -t)
Alla prima domanda potete tranquillamente premere invio, e assegnerà il nome al file di default, alla seconda domanda inserite una password o lasciatela vuota a seconda del vostro uso futuro e della vostra sicurezza.
(normalmente è ~/.ssh/id_rsa
) il valore di default del nome file pubblico e privato
Copia automatica della chiave pubblica
Vi consiglio fortemente di usare i comandi giusti non cp o scp manuali, in quanto funziona ma io sono impazzito per alcuni problemi che non vi dico.
Quindi il comando è il seguente ssh-copy-id :
ssh-copy-id /home/administrator/.ssh/id_rsa.pub administrator@serverremoto
a quersto punto verifichiamo solo che i permessi siano corretti :
sul server remoto i permessi nella cartella .ssh
I permessi sulla directory remota ~/.ssh
devono essere settati a: 755 o così drwxr-xr-x
i permessi sul file authorized_keys presente nella cartella .ssh deve essere così : -rw-r--r--
Se non dovesse funzionare questa copia fatelo a mano con scp /percorso/id_rsa.pub user@serverremoto:/percorso/authorized_keys
Configurazione del server
Verificate anche che il file di configurazione del demone ssh abbia le seguenti voci :
sshd_config
HostbasedAuthentication yes
RSAAuthentication yes
PubkeyAuthentication yes
Riavviate il servizio ssh /etc/init.d/ssh restart
Per vedere se funziona
Provate ora a collegarvi dal server principale su quello che volete autenticarvi :
se non avete messo nessuna password vedrete che vi farà entrare subito senzxa richiesta di password.
Buon lavoro