De manera predeterminada, todos los usuarios pueden ingresar a un sistema SSH con una contraseña/clave pública válida. Para determinados Servidores dedicados con funciones específicas, como Servidor FTP, Servidor de correo electrónico, etc.; Por lo general, se recomienda deshabilitar a los usuarios no root para iniciar sesión a través de SSH. La publicación detalla los pasos para deshabilitar el acceso de inicio de sesión ssh del usuario no root a los sistemas. Hay 3 formas diferentes discutidas aquí. Cualquiera de las tres formas a continuación podría lograr el propósito.
Método 1:usar el archivo /etc/ssh/sshd_config
Este método se puede utilizar para permitir que algunos usuarios inicien sesión mediante SSH. Edite el archivo /etc/ssh/sshd_config (archivo de configuración del demonio OpenSSH SSH) y agregue la palabra clave AllowUsers con argumento raíz .
# vi /etc/ssh/sshd_config AllowUsers rootNota :las palabras clave no distinguen entre mayúsculas y minúsculas y los argumentos también distinguen entre mayúsculas y minúsculas.
Ahora reinicie el servicio sshd:
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
Verifique que los usuarios no root no puedan iniciar sesión a través de SSH, pero el usuario root sí.
# ssh test@host1 test@host1's password: Permission denied, please try again. test@host1's password: Permission denied, please try again. test@host1's password: Permission denied (publickey,gssapi-with-mic,password).# ssh root@host1 root@host1's password: Last login: Wed Sep 13 10:47:14 2017 from 10.10.10.10 [root@host1 ~]#Método 2:usar el archivo /etc/nologin
Esta es la forma más rápida de bloquear a todos los usuarios no root del inicio de sesión SSH.
1. Cree un archivo /etc/nologin en el host remoto.
# touch /etc/nologin # ls -lrt /etc/nologin -rw-r--r-- 1 root root 0 Sep 13 13:23 /etc/nologinNota :si este archivo existe, solo el usuario raíz puede iniciar sesión en el sistema a través de SSH. Si el archivo /etc/nologin.txt existe, nologin muestra su contenido al usuario en lugar del mensaje predeterminado.Asegúrese de que la siguiente línea esté en el archivo /etc/pam.d/sshd :
account required pam_nologin.soNote: backup the file /etc/pam.d/sshd before modifying it.Luego reinicie el servicio sshd:
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]Verifique el inicio de sesión SSH del usuario no root:
# ssh test@host1 test@host1's password: Connection closed by 192.168.10.10Método 3:usar el archivo /etc/sshd/sshd.allow
El archivo /etc/sshd/sshd.allow se utiliza para especificar la lista de usuarios a los que queremos dar acceso ssh. Si solo mencionamos el usuario root en este archivo, a todos los demás usuarios se les negará el acceso ssh al host.
1. Agregue el usuario raíz al archivo /etc/sshd/sshd.allow (si el directorio/archivo no existe, créelo manualmente).
# cat /etc/sshd/sshd.allow root2. Reemplace la línea de autenticación como se muestra a continuación en el archivo /etc/pam.d/sshd :
auth required pam_listfile.so item=user sense=allow file=/etc/sshd/sshd.allow onerr=failAquí,
se requiere autenticación pam_listfile.so :Nombre del módulo requerido al autenticar a los usuarios.
item=user :Comprobar el nombre de usuario del elemento.
sense=allow :Permitir usuario.
file=/etc/sshd/sshd.allow :Archivo de lista de usuarios.
onerr=fail :Si el nombre de usuario no está en el archivo, no permitirá iniciar sesión.3. Reinicie el servicio sshd una vez que haya terminado con todos los cambios anteriores.
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]4. Verifique el inicio de sesión SSH del usuario no root:
# ssh test@host1 test@host1's password: Permission denied, please try again. test@host1's password: Permission denied, please try again. test@host1's password: Permission denied (publickey,gssapi-with-mic,password).También verifique si puede usar ssh con el usuario root:
# ssh root@host1 ssh root@host1's password: Last login: Wed Sep 13 14:53:47 2017 from 10.10.10.10 [root@host1 ~]#