martes, 11 de mayo de 2010

Acceder por ssh sin contraseña.

A veces al entrar a un mismo servidor todos los días, y escribir la misma contraseña todo los días, es un poco pesado.También a la hora de hacer scripts puede resultar útil no tener que meter la contraseña para que todo sea más automatizado.


Para evitar esto seguimos los siguientes pasos:

Para explicar este caso nos situamos en el siguiente entorno:
Cliente - Servidor y el objetivo es poder acceder al servidor por ssh con el usuario root de la máquina remota sin tener que introducir la clave.

1. En el cliente entramos como root y creamos el par de claves privada y pública DSA.
#ssh-keygen -t dsa
Si especificamos un passphrase nos será solicitada en el futuro en cada primer intento de conexión, yo la he dejado en blanco.

2. En el servidor entramos como root y nos vamos al fichero de configuración de ssh:
/etc/ssh/sshd_config

Buscamos las siguientes líneas, y descomentamos la última:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
3. Reiniciamos el servidor con el siguiente comando:
#/etc/init.d/ssh restart
4. Ahora en el cliente. Copiamos la clave pública generada anteriormente(/root/.ssh/id_rsa.pub) al servidor en el directorio(/root/.ssh/).

Esto lo podemos hacer con scp, por ejemplo así:
#scp /root/.ssh/*.pub root@servidor:root/.ssh/
5. En el servidor añadimos al fichero authorized_keys la clave pública exportada desde el cliente, esto lo hacemos así:
#cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
Actualización: Estos 2 pasos anteriores tambien lo podemos hacer de las siguiente forma:
#ssh-copy-id root@servidor
6. Para probarlo intentamos acceder
ssh root@servidor
Y debe de entrar sin pedir ninguna clave.

Nada más. Si hay alguna duda dejar un comentario.

No hay comentarios:

Publicar un comentario