24 julio 2008

Cómo conectarse por SSH o SCP sin contraseña

Se necesitamos acceder vía SSH o SCP sin necesidad de introducir la contraseña, hay que seguir los siguientes pasos:

  1. Generamos dos archivos, id_rsa.pub e id_rsa en nuestro equipo:
    > ssh-keygen -t rsa
  2. Copiamos el contenido del primero (clave pública) al otro ordenador, específicamente al archivo authorized_keys dentro de ~/.ssh/

    1. Primero lo copiamos por SCP al directorio del usuario remoto.
      > scp id_rsa.pub usuario@servidor:
    2. Nos conectamos por SSH y vemos si existe el archivo authorized_keys dentro de ~/.ssh/.
      1. Si no existe, escribimos:
        > mv id_rsa.pub .ssh/authorized_keys
      2. Si el archivo existía (que significa que para ese usuario en ese PC, hay otras claves públicas “de confianza”), añadimos nuestra clave pública (copiando los contenidos de id_rsa.pub a authorized_keys):
        > cat id_rsa.pub >> .ssh/authorized_keys
    3. Para probar si funciona ejecutamos un comando remotamente, por ejemplo hostname, que nos da el nombre de la máquina(y no debería pedir ninguna clave ahora):
      > ssh servidor.com hostname
Nota: Si necesitamos usar una clave dsa en lugar de rsa por la versión del SSH, simplemente cambios en los comandos rsa por dsa y serán generados los ficheros id_dsa.pub e id_dsa. El resto del procedimiento es el mismo, aunque también nos puede ocurrir tengamos que guardar la clave pública generada en authorized_keys2, en vez de authorized_keys dependiendo de la versión del SSH.

Fuentes:
http://www.bootlog.cl/blog/linux/tip-ssh-scp-y-un-as-bajo-la-manga/
http://www.alu.ua.es/p/psp4/Documentacion/Octubre_2001/ssh.html