Esta guía explica cómo deshabilitar la autenticación de contraseña SSH para un usuario o grupo específico en los sistemas operativos Linux y Unix.
Tenga en cuenta que no vamos a deshabilitar por completo el acceso SSH a los usuarios o un grupo. En su lugar, solo deshabilitaremos la autenticación de contraseña SSH.
Los usuarios aún pueden acceder a los sistemas a través de SSH utilizando otros métodos de autenticación, por ejemplo, la autenticación basada en claves SSH.
Deshabilitar la autenticación de contraseña SSH para un usuario o grupo específico
Podemos permitir o denegar el acceso SSH para usuarios y/o un grupo completo usando "/etc/ssh/sshd_config" archivo en Linux. El archivo sshd_config tiene un parámetro llamado "Coincidencia" que lo ayudará a deshabilitar la autenticación de contraseña SSH para usuarios o grupos.
Veamos primero cómo deshabilitar la autenticación de contraseña para un usuario específico.
Edite el archivo "/etc/ssh/sshd_config" usando su editor favorito como usuario root o sudo:
$ sudo nano /etc/ssh/sshd_config
Primero, elimine el método de autenticación predeterminado comentando la siguiente línea:
#PasswordAuthentication yes
A continuación, agregue las siguientes líneas al final:
[...] Match User senthil PasswordAuthentication no
Deshabilitar la autenticación de contraseña SSH para un usuario específico
Tenga en cuenta que Match es efectivo "hasta otra línea de Match o hasta el final del archivo". Si una palabra clave aparece en varios bloques de coincidencia que se cumplen, solo se aplica la primera instancia de la palabra clave.
Según el ejemplo anterior, hemos deshabilitado la autenticación de contraseña SSH para el usuario llamado "senthil". Reemplace "senthil" con su propio nombre de usuario. Guarde y cierre el archivo. Reinicie el servicio ssh para que surtan efecto los cambios:
$ sudo systemctl restart ssh
Ahora intente iniciar sesión como usuario "senthil" a través de SSH:
$ ssh [email protected]
Verá el siguiente mensaje de error:
[email protected]: Permission denied (publickey).
Deshabilitar la autenticación de contraseña SSH para un usuario específico en Linux
Deshabilitar la autenticación de contraseña SSH para un grupo
Para deshabilitar la autenticación de contraseña SSH para un grupo específico, simplemente reemplace el nombre de usuario con el nombre del grupo en el archivo sshd_config.
Match Group mygroup PasswordAuthentication no
Reemplace "mygroup" en la configuración anterior con su propio nombre de grupo.
No olvide reiniciar el servicio ssh para aplicar los cambios.
Deshabilitar la autenticación de contraseña SSH para varios usuarios
Puede denegar la autenticación de contraseña SSH para varios usuarios mencionando los nombres de usuario separados por comas como se muestra a continuación:
Match User senthil,kumar PasswordAuthentication no
La configuración del ejemplo anterior evitará la autenticación de contraseña SSH para los usuarios "senthil" y "kumar".
Deshabilitar la autenticación de contraseña SSH para todos los usuarios excepto el usuario root
En algunos sistemas Linux, es posible que desee permitir la autenticación de contraseña SSH solo para el usuario "raíz" y deshabilitarla para todos los demás usuarios. Si es así, agregue la siguiente línea en el archivo sshd_config al final:
Match User !root PasswordAuthentication no
Restringir la autenticación de contraseña SSH por host o dirección IP
No solo por usuario o grupo, también podemos denegar la autenticación de contraseña SSH por host o dirección IP.
Por ejemplo, el siguiente ejemplo evitará el acceso SSH desde un host que contenga la dirección IP:
Match Address 192.168.225.37 PasswordAuthentication no
Para limitar la autenticación de contraseña SSH para un rango específico de direcciones IP, agregue esto:
Match Address 192.168.225.* PasswordAuthentication no
Y este ejemplo denegará el acceso SSH usando una contraseña de un host que contenga el nombre de host:
Match Address hostname PasswordAuthentication no
Para obtener más detalles, consulte las páginas man.
$ man sshd_config
Conclusión
En esta guía, discutimos cómo deshabilitar la autenticación de contraseña SSH para un usuario o grupo específico en Linux. Además, analizamos cómo deshabilitar el acceso a la contraseña SSH para varios usuarios, cómo restringir el acceso a la contraseña SSH a todos los usuarios excepto al usuario root. Finalmente, aprendimos cómo restringir la autenticación de contraseña SSH por host o dirección IP.
Otras guías relacionadas con SSH:
- Cómo configurar la autenticación basada en clave SSH en Linux
- Permitir o denegar el acceso SSH a un usuario o grupo en particular en Linux
- Limite el número de inicios de sesión SSH por usuario/grupo/sistema
- Restringir el acceso a servidores Linux mediante contenedores TCP
- Ejecutar comandos en sistemas Linux remotos a través de SSH
- Cómo crear un alias SSH en Linux
- Cómo usar SSH en un directorio particular en Linux
- SSLH:comparta un mismo puerto para HTTPS y SSH
- ScanSSH:servidor SSH rápido y escáner proxy abierto
- Cómo reanudar archivos transferidos parcialmente a través de SSH mediante Rsync
- Cómo ejecutar un solo comando en varios sistemas remotos a la vez
- DSH:ejecute un comando de Linux en varios hosts a la vez
- Cómo evitar que la sesión SSH se desconecte en Linux
- Cómo habilitar SSH en FreeBSD
Espero que esto ayude.