SSH: identifique qué usuarios aún inician sesión con contraseñas

32

Tengo un servidor Ubuntu Linux que permite la autenticación de contraseña para SSH, y quiero cambiarlo solo a claves SSH y deshabilitar el inicio de sesión con contraseña.

Antes de deshabilitar el inicio de sesión con contraseña, ¿cómo puedo averiguar qué usuarios siguen usando contraseñas y cuáles han cambiado a la autenticación de clave?

PeterB
fuente
Por cierto, aunque muchas personas no lo saben, también puede solicitar la clave y la contraseña del servidor. Un poco más molesto, pero por supuesto más seguro también, si haces eso ...
deviantfan
34
Inhabilite el inicio de sesión con contraseña sin previo aviso y vea cuántas personas gritan.
Mark
@deviantfan Sería más seguro simplemente requerir un archivo de claves más largo , pero eso requeriría un poco de secuencia de comandos.
jpaugh
1
@deviantfan, entiendo tu punto. Pero, está asumiendo que la contraseña de la clave privada es diferente a la del servidor; (Considerando que supongo que el archivo de clave privada tiene una contraseña, lo sé)
jpaugh

Respuestas:

48

No puede hacerlo de manera 100% confiable, pero hay dos indicaciones fuertes:

  • Primero, la presencia de un .ssh/authorized_keysarchivo es una pista de que el usuario está al menos preparado para usar el inicio de sesión basado en claves
  • En segundo lugar, en el archivo de registro de autenticación ( /var/log/secureen CentOS, /var/log/auth.logen Debian / Ubuntu), se registrará el método de autenticación:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    vs

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    Escanee el registro en busca de entradas con la contraseña mencionada para saber quién sigue usando contraseñas. Por supuesto, esto no funcionará con usuarios que rara vez inician sesión a menos que tenga una retención de registro muy larga.

Sven
fuente
Al 'Escanear' el archivo de registro, ¿supongo que se refiere a opciones razonables como el uso de grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - CoW
8
@ djsmiley2k: Sí, exactamente. O cualquier otro método que prefiera para esa tarea.
Sven
¿No se ve frustrado el primer método por las prácticas de seguridad adecuadas, como los 700permisos en el .sshdirectorio del usuario y el squash raíz en los directorios de inicio montados?
Ogre Psalm33
1
@ OgrePsalm33: Puede hacer esta búsqueda en el servidor NFS ...
Sven
1
@R ..: puede obtener NFS razonablemente seguro con NFSv4 y Kerberos (en cuyo caso el inicio de sesión basado en claves se complica). Aparte de eso: Sí, el inicio de sesión basado en clave funciona sin ningún problema cuando ~/.sshse configura 700en directorios de inicio NFS aplastados por raíz, por lo que claramente tiene que cambiar los ID de usuario al menos para que la lectura basada en clave se lea authorized_keys.
Sven
19

La forma más rápida es desactivarlo y ver quién llama a la puerta de su oficina; p

pete
fuente
66
Esta no es la forma más rápida, porque no todos los usuarios pueden iniciar sesión todos los días, mientras que los registros pueden mostrar claramente cuándo alguien
inició
3
Esta es la forma más lenta. Las personas solo inician sesión en el servidor si su aplicación está inactiva. Podría tomar años para que eso suceda.
Navin
@pete eres el mejor :)
c4f4t0r