Acceder a un servidor vía SSH sin introducir la clave

SSH

Es habitual, cuando se trabaja con servidores, andar accediendo a estos vía SSH. Y cada vez que ejecutamos un comando del tipo:

#ssh usuario@servidor

… lo primero que nos va a pedir el servidor es que introduzcamos la contraseña de ese usuario.

El primer inconveniente que nos encontramos es el tener que andar escribiendo la contraseña cada vez que queramos acceder al servidor vía SSH. Pero hay muchas otras situaciones en las que ni siquiera tenemos la oportunidad de escribir la contraseña, por ejemplo, si queremos ejecutar un comando (vía SSH) en el servidor de forma remota.

Existe una forma muy sencilla de acceder a nuestro servidor vía SSH sin que este nos tenga que preguntar la contraseña en ningún momento. Y esto es posible haciendo uso de nuestras claves pública y privada de autenticación SSH.

Veamos cómo funciona. Primero de todo generaremos el par de claves pública/privada de nuestra máquina de origen (desde la que queremos acceder al servidor). Para ello hacemos:

#ssh-keygen -t rsa

(dejamos en blanco la opción de introducir «passphrase»)

Esto nos habrá generado el par de claves:

/home/user/.ssh/id_rsa
/home/user/.ssh/id_rsa.pub

La primera de las claves (id_rsa) nos identifica y debe estar en nuestro ordenador de origen. La segunda clave (id_rsa.pub) es la clave pública, que debemos instalar en el servidor desde el que queremos que nos identifiquen (y así no nos pida la contraseña).

Sólo nos faltaría instalar la clave pública en nuestro servidor de destino (al que vamos a acceder vía SSH).

Imaginemos que queremos entrar en el servidor como root: entonces vamos al directorio /root/.ssh/ y añadimos una línea nueva en el fichero authorized_keys (si no existe lo creamos) con el contenido del fichero id_rsa.pub , que es nuestra llave pública y que antes hemos generado.

Ahora tendríamos nuestra llave pública en el fichero ~/.ssh/authorized_keys del servidor.

Ya solo tenemos que hacer «#ssh usuario@servidor» y veremos que NO se nos pide ninguna contraseña, al estar identificados por el par de clave pública/privada.