Se encuentra usted aquí

Login en una máquina remota mediante SSH y sin contraseña

Además de la autenticación por contraseña, existe otro método para acceder a una máquina remota con SSH: usando llaves pública/privada. Hace unos años montar la infraestructura necesaria para esto era algo complicado, pero hoy en día se reduce al uso de dos simples comandos.

Primero, es necesario generar un par de llaves:

$ ssh-keygen -t rsa

Este comando solicitará un nombre para el fichero generado (podemos aceptar el que viene por omisión, $HOME/.ssh/id_rsa) y una clave para proteger la llave privada generada (se puede dejar en blanco, ver más abajo).

Una vez generadas las llaves, podemos copiarlas a las máquinas a las que queramos entrar mediante el siguiente comando:

$ ssh-copy-id usuario_remoto@maquina_remota
(NOTA: Este comando básicamente añade el contenido del fichero id_rsa.pub local al fichero ~/.ssh/authorized_keys remoto)

A partir de este momento, podremos acceder a la máquina remota sin necesidad de teclear ninguna clave :-)

Ventajas de este método:

  1. Es más seguro que el uso de claves, particularmente si se tiene mala memoria y la clave habitual es 12345
  2. No requiere interacción con el usuario, por lo que es imprescindible para la ejecución de scripts remotos (esto no es cierto si el fichero que contiene la llave privada está protegido con clave)

NOTA: Si la máquina remota tiene el directorio $HOME en red, como es el caso en muchas organizaciones, sólo es necesario copiar las llaves una vez para poder hacer login en todos los equipos de dicha red.

Tags: