Fa unes setmanes que vaig aprendre a fer un accés SSH amb autentificació per claus entre varis servidors Linux, en anglès seria SSH Key Authentication. Bàsicament serveix per connectar-se via Secure Shell sense tenir que posar cap password. Útil si tenim algun script que intercanvii alguna mena d’informació o dades entre 2 servidors linux. A continuació explico els passos que he seguit:
Suposem que els servidors implicats es diuen ’srv_origen’ i ’srv_desti’
on
’srv_origen’ = el servidor des d’on pujem la informació o les dades.
’srv_desti’= el servidor a on ens connectem per rebre la informació o les dades.
1) En primer lloc cal assegurar-se que ’srv_desti’ tingui activada la authentificació per claus (key authentication enabled)
Editar el fitxer de configuració del servidor ssh (sshd), /etc/ssh/sshd_config, buscar les següents linies i les descomentar-les:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Un cop fet, recordar de reiniciar el servidor: /etc/init.d/sshd restart
2) A continuació, al servidor ’srv_origen’ cal crear el parell de claus publica/privada que s’utilitzaran per fer l’autentificació:
ssh-keygen -t rsa
No cal posar cap password quan pregunti.
La comanda anterior crea 2 fitxers, una clau pública (public key) i una clau privada (private key)
Els fitxers es crean al [homedir] de l’usuari que ha executat la comanda:
La clau pública: [homedir]/.ssh/id_rsa.pub
La clau privada: [homedir]/.ssh/id_rsa
3) Ara cal configurar el ’srv_desti’ per tal que accepti les connexions que provenen del ’srv_origen’
Triem l’usuari amb el qual ens volem connectar al ’srv_desti’, per exemple ‘usr_desti
Al [homedir] d’aquest usuari cal crear un directori ocult anomenat .ssh (mkdir .ssh), modifiquem els permisos per que siguin 700 (chmod 700 .ssh)
Dins d’aquest directory creem un nou fitxer que es digui authorized_keys i copiem el contingut de la clau pública que s’acaba de crear al ’srv_origen’, un cop fet guardem els canvis i modifiquem els permisos a 600 (chmod 600 authorized_keys)
Ull al copiar el contingut de id_rsa.pub a authorized_keys, no hi ha d’haver cap salt de línia !!
4) Finalment només queda provar la connexió:
Des del ’srv_origen’ i amb l’usuari que s’ha creat el parell de claus cal escriure el següent:
ssh usr_desti@srv_desti
Si tot funciona correctament no hauria de demanar cap password i tampoc s’hauria de tancar la connexió inmediatament.