Cómo deshabilitar la contraseña de prueba nuevamente en el comando ssh

11

Quiero que el comando ssh solo permita una oportunidad para escribir la contraseña, si la contraseña fue incorrecta la primera vez, ssh volverá

Permission denied (publickey......).

¿Hay una bandera que le dice al ssh que solicite solo una vez la contraseña?

En vez de:

[nir@dhcppc4 ~]$ ssh [email protected]
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied (publickey.....).

Quiero:

[nir@dhcppc4 ~]$ ssh [email protected]
[email protected]'s password: 
Permission denied (publickey.....).

La solución debe estar en el lado del cliente (p. Ej., Alguna marca para el comando ssh o usar tubería), no puedo tocar sshd_configni ningún otro archivo de configuración del sistema. Debido a que, en general, construyo software de terceros (por lo que no puedo generar claves ni archivos de sistema de configuración) que accedan a los servidores en la LAN, las contraseñas se guardan en la base de datos (por lo tanto, no necesita un segundo intento). Y en mi código si voy a ser capaz de asumir que sólo tengo un intento de ssh/ scpsimplificará el código correspondiente.

Nir
fuente
1
Como muestran las respuestas, puede modificar esto, pero ¿por qué quiere hacerlo? Las personas cometen errores de escritura con frecuencia, y los valores predeterminados están configurados para permitir tales debilidades. Una pregunta mejor podría ser "¿cómo bloqueo a un usuario que ha fallado n intentos de inicio de sesión?" particularmente si está buscando protegerse contra inicios de sesión maliciosos.
msw
Mi razón es compleja y larga. Lo que puedo decir es que si la contraseña fue incorrecta la primera vez, seguirá siendo incorrecta las siguientes veces.
Nir
2
¿Desea realizar la función de administración del sistema más fundamental (autenticación) pero no puede tocar los archivos de configuración del sistema? No tienes suerte. Si usted se preocupa de explicar el motivo de largo y complejo, tal vez podríamos ser capaces de ver la X en lugar de la Y que has presentado en su XY Problema
RSU
1
La única forma en que puedo ver esto, incluso si es un problema, es si está haciendo una autenticación de contraseña de forma no interactiva, en cuyo caso, cualquier utilidad que esté utilizando para hacer eso debería tener la posibilidad de abortar después de una contraseña fallida o, si no , entonces esa utilidad debería ser el tema de esta pregunta.
Sammitch
1
También noto que ssh está notando un intento fallido de autenticación de clave pública, ¿ha considerado copiar su clave pública y evitar esto por completo?
Sammitch

Respuestas:

14

En la página del comando man sshd config man 5 sshd_config:

 MaxAuthTries
     Specifies the maximum number of authentication attempts permitted
     per connection.  Once the number of failures reaches half this
     value, additional failures are logged.  The default is 6.

Por lo tanto, una configuración de MaxAuthTries 2será la configuración que necesitará. sshddeberá reiniciarse después (debe ejecutarse como root):

/etc/init.d/ssh restart 

o

service ssh restart

En el lado del cliente, esto puede establecerse con la configuración de ssh (mira man 5 ssh_configla configuración que puedes aplicar)

 NumberOfPasswordPrompts
         Specifies the number of password prompts before giving up.  The
         argument to this keyword must be an integer.  The default is 3.

Edite su ~/.ssh/configarchivo y agregue:

 Host <name_or_ip_of_host|*>
     NumberOfPasswordPrompts 1

Donde <name_or_ip_of_host|*>la IP canónica o el nombre de host que está utilizando en la línea de comando, o *para todos los intentos de conexión de host. También puede especificar esto en la línea de comando sin tener que editar su /.ssh/configarchivo:

  ssh -o NumberOfPasswordPrompts=1 user@hostname 
Drav Sloan
fuente
Por favor vea la edición de preguntas. Quería algo de uso de bandera / tubería y no cambios ensshd_config
Nir
He editado mi respuesta dando opciones al lado del cliente.
Drav Sloan
0

Mira MaxAuthTries en sshd_config. El valor predeterminado es 6, así que tenga en cuenta que puede estar intentando la autenticación de clave pública antes de intentar la autenticación de contraseña al seleccionar su valor.

Juan
fuente