SSH con certificados

25 Noviembre 2012 at 19:57 by Adrián Pérez

Apache HTTPHace un tiempo, escribí como acceder de un servidor a otro mediante certificados por SSH, para automatizar tareas que requieran de una conexión SSH entre servidores, evitando así tener que introducir el password. Aquí el post original.

Sin embargo, en ocasiones, el SSH no está configurado para aceptar conexiones con password, y no podemos por lo tanto, usar el comando "ssh-copy-id". Para estas ocasiones, podemos seguir el procedimiento descrito a continuación:

Server desde el cual nos queremos conectar

  1. Creamos la clave pública estando logueados con el usuario desde el cual queremos iniciar el logueo
  2. ssh-keygen -t dsa

  3. Copiamos la clave pública generada:
  4. cat .ssh/id_dsa.pub

Server al cual nos queremos conectar

  1. Vamos a la home del usuario al cual nos queremos conectar, y si no tiene ya creado el directorio .ssh y el fichero "authorized_keys", los creamos:
  2. mkdir .ssh
    chmod 700 .ssh
    cd .ssh
    touch authorized_keys2
    chmod 600 authorized_keys2

  3. Usaremos authorized_keys2 en lugar de authorized_keys, porqué authorized_keys2 hace referencia al protocolo 2, usado por SSH en las versiones actuales, en lugar de usar el ya obsoleto protocolo 1 (puedes ver el tipo de protocolo configurado en el fichero /etc/ssh/sshd_config).
  4. Una vez tengamos listo el fichero authorized_keys2, símplemente lo abriremos y copiaremos ahí el certificado público del server desde el cual nos queremos conectar (descrito en el punto 2 anterior).

 

Con esto estaremos listos para conectar con certificado, sin necesidad de habilitar (aunque sea momentáneamente) la autentificación por password para el SSH.

 

Fuente: http://sshkeychain.sourceforge.net/mirrors/SSH-with-Keys-HOWTO/SSH-with-Keys-HOWTO-4.html

 

mkdir .ssh

Flickr! Foto por Piano Piano!