Como acceder vía SSH mediante llave pública

Esta guía, probablemente, no es para tí

Esta guía es única y exclusivamente para clientes que usan sistemas Unix, es decir, cualquier distribución de Linux, Mac OS X o BSD. Si usas Windows, esta guía no es para tí.

En esta guía vamos a explicar como acceder a tu cuenta de hosting mediante SSH sin tener que introducir tu contraseña. Se trata de utilizar un par de llaves pública y privada como método de autenticación.

1 – Crear las llaves RSA en tu ordenador

Abre la terminal o consola en tu ordenador y ejecuta lo siguiente:

ssh-keygen -t rsa

Te pedirá una serie de datos, respondé a todas ellas con el valor predeterminado. Al terminar habrá creado 2 archivos en el directorio .ssh de la home de tu usuario: id_rsa y id_rsa.pub, la primera es llave privada y la segunda la pública.

Es esta llave pública la que tendremos que “subir” a tu cuenta de hosting para que el servicio SSH te permita hacer login sin necesidad de introducir contraseña.

2 – Acceder a tu cuenta de hosting vía SSH

Accede a tu cuenta de hosting mediante SSH, tal y como lo haces siempre, introduciendo tu contraseña.

Una vez dentro cambia al directorio .ssh:

cd ~/.ssh

Es posible que el directorio no exista, por lo que tendrás que crearlo y darle los permisos correctos:

mkdir ~/.ssh
chmod 700
cd ~/.ssh

3 – Añadir tu llave pública al archivo de autorizados

Una vez estes dentro del directorio .ssh de tu cuenta de hosting, debes añadir tu llave pública al archivo llamado authorized_keys, que es el archivo que contiene las distintas llaves púbicas que pueden hacer login en tu cuenta de hosting.

Lo más sencillo es que copies el contenido de tu llave pública, es decir, el contenido del archivo id_rsa.pub ubicado en tu ordenador y que has creado en el paso 1 de esta guía.

Una vez copiado, abres el archivo authorized_keys de tu cuenta de hosting y añades o pegas al final del mismo tu llave pública completa. Para abrir el archivo para su edición, puedes usar el editor nano:

nano ~/.ssh/authorized_keys

Si no existe el mencionado archivo authorized_keys en tu cuenta de hosting, tendrás que crearlo y darle los permisos adecuados:

touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys