Conexión por ssh con clave rsa

Imagen
Conexión por ssh con clave rsa

Me conecto a mis servidores a través de ssh. Por seguridad, tengo desactivada la autenticación mediante contraseña y solo acepto el uso de pares de claves público-privadas.

Cada vez que creo un nuevo alojamiento web creo un usuario para el mismo y tengo que volver a repetir la búsqueda de información de cómo hacerlo, así que vamos a tener un pequeño guion muy práctico.

Generar la clave

Lo primero, generar el par de claves con el siguiente comando:

ssh-keygen -t rsa -b 4096 -C "usuario@servidor"

El sistema responderá solicitando una frase de paso, que puedes dejar en blanco y pedirá el nombre del fichero en el que guardar la clave.

Por defecto, te ofrecerá guardarla en ~/.ssh/id_rsa, en mi caso prefiero guardarlas temporalmente en el directorio en el que esté trabajando en ese momento y nombrarlas como usuario@servidor, así que introduciría algo así como ~/temporal/usuario@servidor.

Tras confirmar el nombre del fichero, si observamos se ha generado un archivo con ese nombre y otro denominado usuario@servidor.pub.

Ahora nos quedaría incorporar la clave privada a nuestro agente ssh y la pública en el servidor.

Incorporar la clave privada al agente ssh

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/ususario@servidor

Copiar la clave pública en el servidor

En mi caso, al tener desactivado el acceso mediante contraseña subo el archivo usuario@servidor.pub a la carpeta oculta .ssh que se encuentra en la raíz de mi sitio web y la renombro como authorized_keys.

Si ya existiera el fichero authorized_keys, debe pegarse el contenido de usuario@servidor.pub dentro del fichero authorized_keys.

Como mi panel de control me permite ejecutar sesiones ssh desde la web, esta copia la realizo con el siguiente comando, ejecutado desde el directorio .ssh

cat usuario@servidor.pub  >> authorized_keys

Iniciar sesión con ssh 

Una vez incorporada la clave privada al agente ssh de a máquina local y la pública en el servidor, basta con el siguiente comando:

$ ssh usuario@servidor