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.

Hace unos años funcionaba bien, pero tuve un problema el 2018, entonces he creado la forma 2, que esa sí me funcionó entre un equipo Fedora y CentOS.

  1. En el cliente. Ejecuta los siguientes comandos: 
    • $ mkdir -p $HOME/.ssh
    • $ chmod 0700 $HOME/.ssh
    1. Alternativa 1
    • 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)
    1. Alternativa 2
    • $ ssh-keygen -b 4096 -t rsa  (Cuando pida contraseña varios enters)
    • Se generarán 2 archivos: $HOME/.ssh/id_rsa (con la llave privada) y $HOME/.ssh/id_rsa.pub (con la llave pública)
  2. En el cliente. Copia $HOME/.ssh/id_dsa.pub al servidor.
    • Alternativa 1: $ scp $HOME/.ssh/id_dsa.pub usuarioServer@IPServidor:
    • Alternativa 2: $ scp $HOME/.ssh/id_rsa.pub usuarioServer@IPServidor:
  3. En el servidor. Ejecuta los siguientes comandos:
    • Alternativa 1: $ cat id_dsa.pub $HOME/.ssh/authorized_keys2
    • Alternativa 2: cat id_rsa.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