Comment désactiver le mot de passe réessayer dans la commande ssh

11

Je veux que la commande ssh n'autorise qu'une seule chance de taper le mot de passe, si le mot de passe était incorrect la première fois que le ssh reviendra

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

Existe-t-il un indicateur qui indique au ssh de ne demander qu'une seule fois le mot de passe?

Au lieu 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.....).

Je voudrais:

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

La solution doit être du côté client (par exemple, un indicateur de la commande ssh ou en utilisant un pipeline), je ne peux pas toucher sshd_config, ou tout autre fichier de configuration système. Parce que -en général- je construis des logiciels tiers (donc je ne peux pas générer de clés ni configurer les fichiers système) qui accèdent aux serveurs dans le LAN, les mots de passe sont enregistrés dans la base de données (donc pas besoin d'une seconde tentative). Et dans mon code si je serai en mesure de supposer que je n'ai qu'une tentative de ssh/ scpelle simplifiera le code correspondant.

Nir
la source
1
Comme les réponses le montrent, vous pouvez le modifier, mais pourquoi voulez-vous? Les gens font souvent des fautes de frappe, et les valeurs par défaut sont définies pour permettre de telles fragilités. Une meilleure question pourrait être "comment verrouiller un utilisateur qui a échoué n tentatives de connexion?" en particulier si vous cherchez à vous protéger contre les connexions malveillantes.
msw
Ma raison est complexe et longue. Ce que je peux dire, c'est que si le mot de passe était incorrect la première fois - il continuera d'être incorrect les fois suivantes.
Nir
2
Vous souhaitez effectuer la fonction d'administration système la plus fondamentale (authentification) mais vous ne pouvez pas toucher aux fichiers de configuration système? Vous n'avez pas de chance. Si vous vous souciez d'expliquer votre raison longue et complexe, nous pourrions peut-être voir le X au lieu du Y que vous avez présenté dans votre problème XY
msw
1
La seule façon que je peux voir ce même être un problème est de savoir si vous faites un mot de passe auth non interactive, dans ce cas , quel que soit l' utilité que vous utilisez pour faire que devrait soit avoir la possibilité d'abandonner après un mot de passe a échoué ou, à défaut , alors cette utilité devrait faire l'objet de cette question.
Sammitch
1
Je remarque également que ssh note une tentative infructueuse d'authentification par clé publique, avez-vous envisagé de copier votre clé publique et de l'éviter complètement?
Sammitch

Réponses:

14

Dans la page de manuel de 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.

Un paramètre de MaxAuthTries 2sera donc le paramètre dont vous aurez besoin. sshddevra être redémarré par la suite (doit être exécuté en tant que root):

/etc/init.d/ssh restart 

ou

service ssh restart

Côté client, cela peut être défini avec les paramètres ssh (recherchez man 5 ssh_configles paramètres que vous pouvez appliquer):

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

Modifiez donc votre ~/.ssh/configfichier et ajoutez:

 Host <name_or_ip_of_host|*>
     NumberOfPasswordPrompts 1

<name_or_ip_of_host|*>l'adresse IP canonique ou le nom d'hôte que vous utilisez sur la ligne de commande, ou *pour toutes les tentatives de connexion à l'hôte. Vous pouvez également le spécifier sur la ligne de commande sans avoir à modifier votre /.ssh/configfichier:

  ssh -o NumberOfPasswordPrompts=1 user@hostname 
Drav Sloan
la source
Veuillez consulter la modification de la question. Je voulais une utilisation de drapeau / pipeline et pas de changements danssshd_config
Nir
J'ai édité ma réponse en donnant les options côté client.
Drav Sloan
0

Regardez MaxAuthTries dans sshd_config. La valeur par défaut est 6, alors gardez à l'esprit que vous essayez peut-être d'authentification par clé de pub avant de tenter l'authentification par mot de passe lorsque vous sélectionnez votre valeur.

John
la source