miércoles, 10 de julio de 2013

SSH sin contraseña

A continuación una guía para evitar que el servicio SSH pida contraseña (password), es muy útil cuando queremos hacer copias de un servidor a otro en un cron por ejemplo.


  1. En el cliente. Ejecuta los siguientes comandos: 
    • $ mkdir -p $HOME/.ssh
    • $ chmod 0700 $HOME/.ssh
    • ssh-keygen -t dsa -f $HOME/.ssh/id_dsa -P ''
    • Se generarán 2 archivos: $HOME/.ssh/id_dsa (con la llave privada) y $HOME/.ssh/id_dsa.pub (con la llave pública)
  2. En el cliente. Copia $HOME/.ssh/id_dsa.pub al servidor.
    • $ scp $HOME/.ssh/id_dsa.pub usuarioServer@IPServidor:
  3. En el servidor. Ejecuta los siguientes comandos:
    • cat id_dsa.pub >> $HOME/.ssh/authorized_keys2
    • $ chmod 0600 $HOME/.ssh/authorized_keys2
    • En algunas versiones de OpenSSH deberás ejecutar los comandos $ cat id_dsa.pub >> $HOME/.ssh/authorized_keys y también $ chmod 0600 $HOME/.ssh/authorized_keys A mi me funciono sin estar argucia.
  4. Para testear si todo funcionó bien. En el cliente ejecuta:
    • $ ssh usuarioServer@IPServidor
    • Debería entrar directo sin pedirte contraseña.
Ahora puedes copiar archivos utilizando scp sin problemas entre uno y otro servidor. Hice la prueba sobre CentOS y Fedora sin dramas!!!.

Enlace de referencia: http://www.csua.berkeley.edu/~ranga/notes/ssh_nopass.html