divendres, 5 de desembre del 2008

Claus SSH

Com molts sabeu una gran utilitat típica dels UNIX és la Secure Shell (ssh)
que permet accedir remotament a un servidor. A banda d'això hi ha tota una gama de derivats també molt útils com el scp (secure copy) per copiar fitxers i sftp o sshfs per navegar-hi, entre d'altres.

El funcionament és senzill ssh usuari@direcció_servidor i la cosa demana una contrasenya, un cop posada tenim hi tenim una terminal (si teníem configurat el servidor ssh a la màquina remota i instal·lat el client a la local).
Si fer el login a aquell servidor és una cosa molt habitual és solen emprar claus SSH per no haver de teclejar la contrasenya cada vegada, per això existeix ssh-keygen. La idea és generar uns fitxers que es posen tant al client com al servidor per tal de que és "coneguin" i no s'hagi de demanar cada cop la contrasenya, vindria a ser com un "emparellament" que és fa entre dispositius bluetooth.

El procés és senzill (crec que és genèric per a qualsevol Debian o Ubuntu), obrim una terminal al nostre ordinador (client):

usuari@client:~$ ssh-keygen

Pitjau "Enter" a totes les opcions, els valors per defecte són bons, vos generarà dos fitxers (ambdós dins la carpeta /home/usuari/.ssh) id_rsa i id_rsa.pub. El fitxer id_rsa.pub l'heu de copiar al vostre servidor dins la carpeta /home/usuari_seridor/.ssh/ renombrant-lo a authorized_keys.

usuari@client:~$ scp /home/usuari/.ssh/id_rsa.pub usuari_servidor@direccio_servidor:.ssh/authorized_keys

En cas de voler permetre l'accés des de més màquines simplement heu d'afegir les claus dins el fitxer authorized_keys del servidor perquè quedin una després de l'altre.

Un cop generat el fitxer amb ssh-keygen a la segona màquina el copiam al servidor:

usuari2@client2:~$ scp /home/usuari2/.ssh/id_rsa.pub usuari_servidor@direccio_servidor:.ssh/

I l'afegim (estant al servidor):
usuari_servidor@servidor:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys.
usuari_servidor@servidor:~$ rm ~/.ssh/id_rsa.pub


Així de simple, ara cada vegada que feim un ssh, scp, sftp o munteu una carpeta amb sshfs no farà falta poseu la contrasenya!