Omitir navegación.
Inicio

Compartir claves SSH

Una utilidad excelente al momento de administrar varios servidores es la de compartir las claves ssh, que son archivos cifrados con que vendría a ser como una llave que puede darnos acceso a un servidor sin necesidad de pedirnos una clave, se usan también por seguridad por ejemplo para permitir solo al cliente que tenga compartido su claves ssh.

Lo primero que hay que hacer es en el servidor permitir este método de autenticación, sobra decir que deberá estar ya instalado el servicio ssh o sino aptitude install
ssh.

server:~# nano /etc/ssh/sshd_config

    RSAAuthentication yes
    PubkeyAuthentication yes

Ahora generaramos las claves rsa y dsa
en el cliente

cliente@pc-cliente:~$ ssh-keygen -t rsa
cliente@pc-cliente:~$ ssh-keygen -t dsa

Mirar si se crearon

ls -hla .ssh/

drwx------ 2 user user 4.0K 2010-05-30 12:03 .
drwxr-xr-x 3 user user 4.0K 2010-05-30 12:00 ..
-rw------- 1 user user 668 2010-05-30 12:03 id_dsa
-rw-r--r-- 1 user user 602 2010-05-30 12:03 id_dsa.pub
-rw------- 1 user user 1.7K 2010-05-30 12:03 id_rsa
-rw-r--r-- 1 user user 394 2010-05-30 12:03 id_rsa.pub
-rw-r--r-- 1 user user 884 2010-05-30 11:55 known_hosts 

Copiar el par de claves públicas
generadas (id_dsa.pub y id_rsa.pub) a nuestro directorio ~/.ssh del
servidor.

cliente@pc-cliente:~$ scp ~/.ssh/id_dsa.pub usuario@servidor:.ssh/c_id_dsa.pub
cliente@pc-cliente:~$ scp ~/.ssh/id_rsa.pub usuario@servidor:.ssh/c_id_rsa.pub

Si da el error

scp: .ssh/id_rsa.pub: No such file or directory

Es por que el directorio .ssh no
existe, simplemente crearlo en el servidor y darle permisos 700

server:~#mkdir .ssh
server:~#chmod 700 .ssh

Ahora configurar para que nó pida
contraseña el servidor, esto lo hacemos tambien en el cliente

cliente@pc-cliente:~$eval `ssh-agent`
cliente@pc-cliente:~$echo $SSH_AUTH_SOCK
cliente@pc-cliente:~$ssh-add

Conectarse nuevamente al servidor (esta
es ya la última vez que necesitaremos teclear la contraseña :) con
nuestro usuario y volcar el contenido de las claves públicas
copiadas anteriormente al directorio ~/.ssh/ al archivo
~/.ssh/authorized_keys2 :

user@server1:~$ cd .ssh/
user@server1:~$ cat c_id_dsa.pub >> authorized_keys2
user@server1:~$ cat c_id_rsa.pub >> authorized_keys2

Podemos hasta borrar los archivos de las claves si queremos:

rm c_id_dsa.pub c_id_rsa.pub

Eso es todo nuestra pc se entenderá
con el servidor y con solo invocar ssh root@servidor
este le concederá acceso.