Restrinja el acceso SSH basado en contraseña por usuario pero permita la autenticación de clave

Respuestas:

49

Puede agregar secciones "Coincidencia" para que coincidan con usuarios o grupos particulares en la parte inferior de sshd_config, como:

Match user stew
PasswordAuthentication no

o

Match group dumbusers
PasswordAuthentication no
estofado
fuente
99
Evitaría la sangría, ya que sugiere que solo las líneas sangradas se ven afectadas Matchcuando, en realidad, toda la configuración se ve afectada hasta la próxima Matchdirectiva. Podría ser confuso para alguien que no esté familiarizado con la sintaxis.
Michael Mior
2
@MichaelMior ¿hay alguna forma de "EndMatch"?
Nick T
44
@NickT Matchfunciona hasta la siguiente Matcho Hostpalabra clave. Podrías usarlo Match user *.
Michael Mior
@MichaelMior ¿Significa esto que si lo usa Match user ZaQwEdCxS, podría representar un conjunto de líneas de configuración que nadie puede utilizar, temporal o permanentemente?
Tripp Kinetics
Significaría que todas las líneas de configuración posteriores solo se aplicarían a los usuarios nombrados ZaQwEdCxS. Sin embargo, si tiene una pregunta diferente, debe hacer una nueva pregunta.
Michael Mior
4

Simplemente bloquee las contraseñas de los usuarios que no desea iniciar sesión con contraseñas:

usermod -L <user>

Luego, coloque una clave pública válida en su .ssh/authorized_keysarchivo y solo podrán iniciar sesión con la clave privada correspondiente, pero no con una contraseña.

Nota: Esto romperá sudo a menos que el usuario tenga NOPASSWD: en su entrada de visudo

Oliver
fuente
8
Eso también romperá sudo. Quizás no sea un problema en este caso, pero vale la pena mencionarlo.
EEAA
Si eso es verdad. Debería haberlo mencionado.
Oliver
1
Algunas configuraciones de OpenSSH (por ejemplo, creo que Ubuntu 14.04 en la configuración predeterminada) no permiten el acceso de usuarios bloqueados, ni siquiera a través de
claves
@NilsToedtmann, ¿puede citar una fuente de verificación? También sería muy importante tener en cuenta en la respuesta, de ser así.
Metagrapher
-3

deberías investigar

/etc/ssh/sshd_config

Creo que lo que estás buscando es

PasswordAuthentication yes

cámbielo a no y no olvide reiniciar sshd

alexus
fuente
2
Soy consciente de esto. Sin embargo, esta es una configuración GLOBAL. Quiero una opción más granular. Por eso dije "por usuario". Quiero esto solo para algunos usuarios (utilizado para la comunicación interna del clúster entre los servidores del clúster). - no para todos los usuarios
giro
oh cierto, lo siento, no lo leí correctamente, entonces lo que @stew recomendó es un camino a seguir
alexus