Redes

Conexión con llaves por SSH

Las contraseñas son una piedra en la seguridad informática, ya ha quedado demostrado que no son útiles para proteger y que es uno de los sistemas de autenticación más vulnerables. En el primer artículo se enseñaba a hacer una configuración inicial de un Ubuntu Server, ahora vamos a securizar el protocolo SSH utilizando llaves.

Las llaves sirven para acceder a nuestro servidor a través del protocolo SSH sin la necesidad de las antiguas contraseñas, enseñaremos el proceso desde el sistema operativo Linux.

Servidor SSH

Para empezar a trabajar con llaves SSH en un servidor debemos permitir el login con contraseña para posteriormente denegarlo. Para que se pueda acceder usando contraseñas debemos modificar el fichero /etc/ssh/sshd_config. Y deberá quedar de la siguiente manera.

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

...

#PubkeyAuthentication yes

...

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no

Para hacer efectivo los cambios de la configuración de SSH hay que reiniciar el servicio, se hace con el siguiente comando.

sudo systemctl restart ssh.service

Creación de una llave SSH

Para crear una llave SSH utilizaremos un sólo comando muy sencillo que es el siguiente:

ssh-keygen -t rsa

Y al ejecutar el comando se nos abrirá un asistente.

La primera pregunta es la ubicación donde queremos guardar la key, y la siguiente es si queremos usar un “passphrase” adicional para utilizar la llave SSH al conectarnos al servidor, pero no es necesario.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/gabriel/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

Y una vez creada la llave, procedemos a copiarla al servidor para poder utilizarla.

Copiar la llave al servidor

Para poder utilizar la llave hay que copiarla al servidor, para copiar la llave utilizamos el siguiente comando.

ssh-copy-id gabriel@direccion_ip

De esta manera se copiará la llave generada al servidor con la dirección IP especificada y para el usuario especificado. Para comenzar a usar las llaves volvemos a editar el fichero de configuración SSH en el servidor (/etc/ssh/sshd_config).

PubkeyAuthentication no

...

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

Y volvemos a reiniciar el servicio SSH del servidor.

sudo systemctl restart ssh.service

Usar la llave SSH

Para utilizarla es muy sencillo, simplemente conéctate al servidor por SSH como normalmente y no te pedirá contraseña, sólo si has establecido una “passphrase”.

ssh gabriel@direccion_ip

En el artículo mencionado al inicio de éste se especifican dos buenas prácticas para securizar SSH, una es denegar el acceso al usuario root y la segunda buena práctica es cambiar el puerto de uso de SSH.

Sin comentarios

Deja tu comentario

Tu correo electrónico no se mostrará, los parámetros con asterisco (*) son obligatorios