Siguiendo el camino emprendido con los artículos anteriores sobre la protección de un VPS con sistema operativo Linux (la guía básica y el acceso con claves SSH), vamos ahora a modificar el servicio SSH para que no acepte solicitudes de acceso mediante la introducción de contraseña. De este modo solo se podrá acceder utilizando claves SSH, lo que aumenta intrínsecamente el nivel de seguridad del VPS.
Si perdieras tu clave privada, podrás acceder igualmente a tu VPS con usuario y contraseña a través de la consola web de VPS GREEN, accesible desde el dashboard. Una vez dentro desde la consola podrás reconfigurar el SSH con una nueva clave privada o restablecer el acceso con nombre de usuario y contraseña.
Requisitos previos
- Un VPS con sistema operativo Linux
- Un usuario con privilegios adecuados, es decir, sudo o directamente root
- Un editor de texto; en nuestro ejemplo usaremos nano
- Haber habilitado el SSH para el uso de claves cifradas
Modifica la configuración del servicio SSH
Antes de empezar con los cambios, abre dos sesiones SSH: en una ejecutarás todas las operaciones indicadas, mientras que la otra permanecerá abierta por si surge una emergencia (puede ser útil para evitar quedarse fuera si los cambios hechos en el archivo de configuración resultaran erróneos). El archivo de configuración del servicio SSH se encuentra en /etc/ssh/sshd_config; solo el usuario root puede modificarlo.
- Vayamos al directorio donde se encuentra el archivo sshd_config:
$ cd /etc/ssh - Hagamos una copia del archivo sshd_config, para poder restaurar rápidamente todos los ajustes modificados:
$ sudo cp sshd_config sshd_config.orig - Llegados a este punto podemos empezar con la modificación de la configuración:
$ sudo nano sshd_config
Dentro del archivo, todo lo que empieza por # (almohadilla) representa un comentario y se ignora al arrancar el servicio; al mismo tiempo, sin embargo, nos indica cuál es el valor por defecto de esa opción concreta. Por ejemplo:
#Port 22 <- questa è la porta di default del servizio, ignorata
Port 4422 <- questa è la nuova porta, scelta da noi, utilizzata
Para impedir el acceso con la contraseña debemos encontrar la opción PasswordAuthentication, eliminar el símbolo # y cambiar su valor por defecto a no — o bien, si se prefiere, escribir una nueva línea conservando intacto el valor anterior. Con el editor nano tenemos a nuestra disposición una cómoda función de búsqueda: basta pulsar las teclas CTRL+W para activar, en la parte inferior de la ventana, un campo donde introducir el texto que buscar; al pulsar INTRO comenzará la búsqueda en el archivo.
Una vez encontrado el parámetro PasswordAuthentication, puedes modificarlo:
# PasswordAuthentication yes
PasswordAuthentication no
Guarda los cambios pulsando las teclas CTRL+X, después Y y por último INTRO para aceptar el nombre de archivo propuesto.
- Llegados a este punto hay que hacer efectivos los cambios recién hechos: es necesario, por tanto, reiniciar el servicio SSH lanzando el comando
$ sudo systemctl restart sshd - Dado que no recibirás ninguna salida particular que confirme el reinicio, comprueba que el servicio se haya iniciado correctamente (si el archivo sshd_config contiene errores, el servicio no se reiniciará):
$ sudo systemctl status sshd
Nunca más contraseñas
Si el procedimiento se ha ejecutado bien, podrás ver en la línea «Active:» que el servicio está activo y en ejecución, con un tranquilizador active (running). Ahora puedes intentar conectarte, por ejemplo sin la clave privada, para comprobar que el servicio SSH de tu VPS negará firmemente el acceso, sin pedir siquiera nombre de usuario o contraseña:
utente_vps@ip_vps: Permission denied (publickey)
Guía publicada originalmente en el blog de VPS GREEN, el servicio VPS en nuestro cloud privado green.