Capítulo 3 · 3.2
Desactivar el inicio de sesión con contraseña y como root
Cualquier servidor en internet recibe en poco tiempo visitas de programas que intentan adivinar contraseñas. Si solo se puede iniciar sesión con una clave, no tienen ninguna posibilidad. Eso es lo que va a activar ahora.
Atención: ¿Funciona el inicio de sesión con su clave como anna (consulte Un usuario propio con sudo)? Entonces haga primero una snapshot (consulte Snapshots: una red de seguridad para cada cambio importante) y mantenga una sesión abierta durante estos pasos. Si algo sale mal, podrá entrar a través de la consola (consulte La consola: su VPS en el navegador).
Un archivo de configuración propio
En Debian y Ubuntu, el servidor SSH lee primero los archivos de /etc/ssh/sshd_config.d/, por orden alfabético. Para cada ajuste cuenta el primer valor que encuentra. Por eso, su propio archivo recibe un nombre que aparece al principio:
anna@web1:~$ sudo nano /etc/ssh/sshd_config.d/00-eigen.conf
Escriba en él:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PasswordAuthentication no: ya no se permiten contraseñas por SSH.KbdInteractiveAuthentication no: tampoco se pide una contraseña por otra vía.PermitRootLogin no: root ya no puede iniciar sesión por SSH, ni siquiera con una clave. Usted trabaja como anna con sudo. Si quiere seguir permitiendo root con una clave, utiliceprohibit-password.
Comprobar y aplicar
anna@web1:~$ sudo sshd -t
anna@web1:~$ sudo sshd -T | grep -Ei '^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)'
passwordauthentication no
kbdinteractiveauthentication no
permitrootlogin no
anna@web1:~$ sudo systemctl restart ssh
sshd -t no muestra nada si el archivo es correcto. sshd -T muestra qué valores se aplican realmente. ¿Sigue apareciendo passwordauthentication yes? Entonces otro archivo de sshd_config.d lo vuelve a activar, a menudo 50-cloud-init.conf. Su 00-eigen.conf va delante y tiene prioridad; compruebe que el nombre sea correcto.
En AlmaLinux y Rocky Linux el servicio se llama sshd: sudo systemctl restart sshd.
Probar antes de cerrar su sesión
Abra una ventana nueva y pruebe:
ssh anna@203.0.113.10
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no anna@203.0.113.10
anna@203.0.113.10: Permission denied (publickey).
ssh root@203.0.113.10
root@203.0.113.10: Permission denied (publickey).
El primero debe funcionar. Los otros dos deben ser rechazados. ¿Todo correcto? Entonces elimine la snapshot.
Consejo: Un número de puerto distinto del 22 mantiene su registro más tranquilo, pero no hace su servidor más seguro. La clave es la que hace el trabajo. Si aun así cambia el puerto, ábralo primero en su cortafuegos (consulte Un cortafuegos con ufw (o nftables)).
