Añadir inicio de sesión con certificado SSH en Ubuntu

Tiempo de lectura: 2 minutos

Hola, hoy vamos a aprender cómo podemos generar un certificado SSH en Ubuntu.

Lo primero que tenemos que hacer es editar el fichero de configuracion SSH:

sudo vi /etc/ssh/sshd_config

Tenemos que descomentar estas líneas:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Una vez añadido estos cambios, tenemos que crear la clave.

Recomiendo hacer el proceso desde un ordenador externo al que estamos configurando. Para ello vamos a nuestra consola y ponemos:

ssh-keygen -t rsa -b 4096

Ahora tenemos que indicar dónde vamos a almacenar la clave:

En caso de que sea para el usuario actual, utilizamos el de defecto (pulsamos en enter).

*En caso de que lo queramos para root y estemos directamente en la máquina, introducimos:

/root/.ssh/id_rsa

Para más seguridad añadimos una contraseña de fase.

Ahora tenemos que añadir nuestra clave a las claves aceptadas para iniciar sesión.

En caso de hacer el proceso desde una máquina remota ponemos:

cat ~/.ssh/id_rsa.pub | ssh usuario@host -p [numero_puerto] "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

En usuario@host ponemos nuestro usuario y el host remoto.

En [numero_puerto] ponemos el número de puerto.

Este comando nos creará un authorized_keys con nuestra clave.

*En caso de hacerlo desde nuestra propia máquina ponemos:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Nos aseguramos que la ha copiado bien:

cat .ssh/authorized_keys

Y ahora tenemos que copiar el contenido de la clave privada (que usaremos para iniciar sesión), en caso de que lo hagamos desde una máquina remota, si lo hacemos en nuestra propia máquina, usaremos la clave RSA Privada generada.

Si el nombre es por defecto usamos este comando:

cat .ssh/id_rsa

Ahora tenemos que reiniciar el servicio ssh:

sudo service ssh restart

Ahora, teniendo nuestra clave RSA copiada, tenemos que iniciar sesión. Creamos un nuevo archivo llamado clave_rsa_privada y lo pegamos dentro de .ssh/ en caso de ubuntu. Ahora indicamos los permisos de la clave:

sudo chmod 600 /home/isma/.ssh/clave_rsa_privada

Configurando por ejemplo un fichero .ssh/config:

Host server
        HostName IP_DE_SERVER
        User USER_DEL_SERVER
        Port PUERTO_SERVER
        PubKeyAuthentication yes
        IdentitiesOnly yes
        IdentityFile ~/.ssh/clave_rsa_privada

Añadimos los datos necesarios, la ip del servidor, el usuario, el puerto y finalmente el archivo en el que hemos pegado la clave RSA.

Ahora podemos forzar a que solo se inicie sesión usando la RSA, para ello editamos de nuevo el archivo sshd_config

sudo vi /etc/ssh/sshd_config

Y descomentamos la línea:

PasswordAuthentication no

También tenemos que buscar en el fichero de configuración extra en el directorio /etc/ssh/sshd_config.d/

En mi caso he tenido que editar este fichero:

sudo vi 50-cloud-init.conf

Y comentamos la línea de:

PasswordAuthentication yes

Y ahora escribimos el comando para reiniciar el ssh:

sudo systemctl restart ssh

Deja un comentario