Logo

Configurar el servidor SSH para el acceso con llave pública.

Uno de los primeros pasos, si no el más importante, al publicar un SSH a la red es desactivar el acceso mediante root y contraseña, aunque no existe la seguridad garantizada, esto nos puede ayudar a no ser susceptibles de un ataque por fuerza bruta para establecer una conexión con nuestro SSH.

Notion Image

Esto va a ser un pequeño tutorial para configurar el acceso a un servidor SSH unicamente con una llave pública, asignando a el una llave privada RSA.

En primer lugar, debemos generar una llave RSA, desde Linux, con el comando ssh-keygen -t rsa

joan@earth:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/joan/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ssh-servidor. Your public key has been saved in ssh-servidor.pub. The key fingerprint is: SHA256:FGWEryQy2B9V539BdKy80AFNxO/+Cp8sMW9IaKzllp0 joan@earth The key's randomart image is: +---[RSA 2048]----+ | .== o*++.| | oo o = o| | o ... .o = | | . + o.. . ..+ o| | + +So . ..o.| | . . = + ...| | = +.* . | | . + E+o..| | . o=.o| +----[SHA256]-----+

Esto nos genera una llave privada (id_rsa) y otra pública (id_rsa.pub) en el directorio /home/USUARIO/.ssh/

Ahora debemos subir nuestra llave pública al servidor, con el comando ssh-copy-id

joan@earth:~$ ssh-copy-id root@12.34.56.78 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@12.34.56.78's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@12.34.56.78'" and check to make sure that only the key(s) you wanted were added.

Desde este momento ya podemos acceder a nuestro servidor usando la llave pública.

joan@earth:~$ ssh root@12.34.56.78 Last login: Fri Feb 1 09:23:38 2019 from 87.65.43.21 [root@servidor ~]#

Aunque aún se puede acceder mediante la contraseña, por lo que debemos desactivar la posibilidad de autenticación en el SSH mediante contraseña, para ello tenemos que editar el fichero /etc/ssh/sshd_config

Reemplazar en el fichero /etc/ssh/sshd_config

PasswordAuthentication yes

Por:

PasswordAuthentication no

Por último reiniciamos el servidor SSH para que este cambio surja efecto:

sudo systemctl reload sshd.service

Se recomienda desactivar el acceso root al SSH y hacerlo accesible solo para un usuario sin privilegios y que pertenezca al grupo de sudoers.

← Volver al inicio