jueves, 27 de octubre de 2016

SSH para vagos... ¡sin contraseña!

En ocasiones quieres realizar conexiones SSH sin tener que poner la contraseña, para poder lanzar scripts automatizados, montar carpetas por SFTP automáticamente, o porque soy un vago redomado y no me apetece escribir la contraseña.

Pues resulta que no solo es posible, sino que además es fácil y rápido.


Pongámonos en antecedentes. Tengo un equipo al que me quiero conectar remotamente vía SSH. Le llamare “servidor”. Y tengo el equipo desde el que conecto, al que llamare “cliente”. Ya esta funcionando SSH y puedo conectar desde el cliente al servidor, aunque sea poniendo la engorrosa contraseña.

Es hora de empezar. Siempre trabajando sobre el “cliente”. Vamos a crear el fichero llave.

  • ssh-keygen -b 4096 -t rsa
Esto nos generará una clave de 4096 bits con el protocolo rsa. Durante la creación nos preguntará donde albergar el fichero y la contraseña. Pulsamos las dos veces intro para que lo guarde en la ubicación predeterminada y sin contraseña. Hemos creado un fichero llamado id_rsa.pub dentro de la carpeta .ssh que cuelga de nuestra home.

Lo siguiente es copiar ese fichero a nuestro servidor, en este caso usando SSH. Nos ubicamos en la carpeta .ssh y tecleamos
  • scp id_rsa.pub miusuario@ipdelservidor:~/
Ni que decir tiene que debes cambiar miusuario por tu nombre de usuario en el servidor e ipdelservidor por la dirección ip del servidor. Nos pedirá contraseña. Tranquilo. Es normal, aun estamos a mitad del trabajo.

Ahora nos conectaremos al servidor por el método que más nos convenga, que por lo general será SSH y pondremos nuestra contraseña por última vez. Una vez en el servidor, añadiremos el fichero que acabamos de copiar al fichero de claves validas.
  • cat id_rsa.pub >> ~/.ssh/authorized_keys
Y ya está el trabajo terminado. Ya podemos conectar sin contraseña.

4 comentarios:

  1. Para enviar y añadir la clave en la máquina remota:

    ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@maquina

    Además en ~/.ssh/config podemos añadir una lista de máquinas remotas con nombre, ip, usuario, puerto, para que sea más sencillo conectarnos

    ResponderEliminar
    Respuestas
    1. No conocia el comando ssh-copy-id, pero es interesante. Gracias.
      Lo de tener varias cuentas de maquinas remotas... por eso añado al final con >> en lugar de escribir sin mas con >
      Gracias por los apuntes.

      Eliminar
  2. Aplausos. Saludos desde Argentina.

    ResponderEliminar
    Respuestas
    1. Gracias por esos aplausos que tanto merezco :P
      Un saludo para Argentina

      Eliminar

prekes sodui