Pregunta ¿Cómo deshabilitar el inicio de sesión SSH con contraseña para algunos usuarios?


En Linux (Debian Squeeze) me gustaría deshabilitar el inicio de sesión de SSH con la contraseña de algunos usuarios (grupo seleccionado o todos los usuarios excepto root). Pero no quiero deshabilitar el inicio de sesión utilizando el certificado para ellos.

editar: Muchas gracias por la respuesta detallada! Por alguna razón esto no funciona en mi servidor:

Match User !root
PasswordAuthentication no

... pero puede ser reemplazado fácilmente por

PasswordAuthentication no
Match User root
PasswordAuthentication yes

145
2018-06-30 14:31


origen


Tal vez sea por tu sangría? - nil
Vale la pena mencionar que esas líneas debajo de la coincidencia deben estar al final del archivo. - zidarsk8
La raíz tampoco funciona para mí. El segundo enfoque hizo el truco. - natenho
He visto casos donde Match User "!root,*" hizo el trabajo - Roman Hocke


Respuestas:


Tratar Match en sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

O por grupo:

Match Group users
    PasswordAuthentication no

O, como se menciona en el comentario, por negación:

Match User !root
    PasswordAuthentication no

Tenga en cuenta que el partido es efectivo msgstr "hasta que aparezca otra línea de coincidencia o el final del archivo". (la sangría no es significativa)


156
2018-06-30 16:13



preferir Match user !root para este caso - 84104
Impresionante, no sabía sobre la sintaxis de Match. Una sugerencia que haría, sin embargo, es que si este es un servidor público, no permitiría el inicio de sesión de root a través de SSH. Probablemente no sea un gran problema si es interno, aunque ... - Safado
@SpacemanSpiff Eso es para lo que a) son contraseñas seguras yb) denyhosts / fail2ban. - ceejayoz
@ deed02392 Si lo desea, puede considerar que una clave es una contraseña muy, muy fuerte. - ceejayoz
Es mucho más fuerte que no está en el mismo parque de bolas, ese fue mi punto. La autenticación de contraseña también debe estar deshabilitada para la raíz y las claves solo se permiten para los inicios de sesión. - deed02392


Match en sshd_config funciona bien. Deberías usar Match all para finalizar el bloque de coincidencia si está utilizando openssh 6.5p1 o superior. Ejemplo:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

12
2017-11-27 22:13





Hay algunas maneras en que puede hacer esto: primero, podría ejecutar un segundo demonio sshd en un puerto diferente con una configuración diferente. Es un poco difícil, pero con un poco de trabajo de chroot debería funcionar bien.

Además, podría permitir la autenticación de contraseña, pero bloquear las contraseñas para todos menos el único usuario. Los usuarios con contraseñas bloqueadas seguirán siendo Capaz de autenticarse con claves públicas.


1
2018-06-30 15:42





simplemente puede ir al archivo / etc / ssh / sshd_config y agregar una línea Para permitir -> AllowUsers user1 Para negar ---> DenyUsers user2

podemos permitir / denegar el inicio de sesión para un conjunto particular de hosts utilizando los archivos hosts.allow o hosts.deny ubicados en la carpeta / etc


-1
2018-03-04 06:10