sábado, 25 de diciembre de 2010

[kr13] SSH sin password

A veces es necesario realizar backups entre equipos a través de algún script o aplicación web. Es en estos casos cuando la autenticación por password se vuelve una barrera para la automatización y se hace necesario trabajar con las llaves públicas y privadas. Esta vez trabajaremos sobre una distribución Debian, pero aplicar esto en una diferente no representará problemas.
Equipo servidor:192.168.1.4
Usuario servidor:soporte
Equipo cliente:192.168.1.99
Usuario cliente:krtapas
En el equipo servidor deben configurarse los siguientes parámetros en el archivo sshd_config
[root@servidor]# vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes

Acceder al cliente desde el cual se desea realizar la autenticación sin password y crear las llaves sin clave
[krtapas@cliente]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/krtapas/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/krtapas/.ssh/id_rsa.
Your public key has been saved in /home/krtapas/.ssh/id_rsa.pub.
The key fingerprint is:
19:02:a6:64:2f:4d:c9:1e:73:54:d5:50:e7:73:73:ab krtapas@cliente

Se accede al equipo servidor y se crea el directorio .ssh en la carpeta del usuario con el cual se planea realizar la operación
[soporte@servidor]$ cd /home/soporte/
[soporte@servidor]$ mkdir .ssh

En el equipo servidor se crea el archivo authorized_keys con el contenido del archivo id_rsa.pub existente en el equipo cliente. La llave que se está copiando es la llave pública, la privada es id_rsa y no debe salir del equipo.
[krtapas@cliente]$ scp /home/krtapas/.ssh/id_rsa.pub soporte@192.168.1.4:/home/soporte/.ssh/authorized_keys
soporte@192.168.1.4's password:
id_rsa.pub

Una vez hecho esto, será posible autenticarse sin necesidad de password desde el equipo cliente, en el equipo servidor.
[krtapas@cliente]$ ssh soporte@192.168.1.4
Last login: Fri Jan 15 16:14:03 2010 from 192.168.1.99
[soporte@servidor]$

No hay comentarios: