Comment désactiver l'invite de mot de passe du côté client ssh?


9

J'ai un script qui repose sur l'authentification ssh à clé publique / privée. Le problème est que certains systèmes sont mal configurés et n'ont pas la bonne approbation de clé publique / privée ssh. Lorsque cela se produit, sshdemandez-moi un mot de passe bloquant l'exécution du script. J'ai essayé cette commande:

sudo ssh -o "PasswordAuthentication=no" -o "ChallengeResponseAuthentication=no" root@last-call

Mais on me demande toujours le mot de passe root.


Après essais et erreurs, j'ai trouvé l'option dont j'avais besoin. "PreferredAuthentications=publickey"
Red Cricket

est-ce mieux que la solution proposée? (BatchMode)
knocte

Réponses:


9

La manière canonique de le faire est avec l' BatchModeoption:

ssh -o BatchMode=yes …

Selon le manuel :

S'il est défini sur «oui», la requête par mot de passe / mot de passe sera désactivée. Cette option est utile dans les scripts et autres travaux par lots où aucun utilisateur n'est présent pour fournir le mot de passe.

Je m'attendais cependant à ce que la combinaison de PasswordAuthentication=noet ChallengeResponseAuthentication=nosoit suffisante. ssh -vvpourrait donner un indice.


Ça marche aussi! $ sudo ssh last-call-2 Password: $ sudo ssh -o "BatchMode=yes" last-call-2 Permission denied (gssapi-keyex,gssapi-with-mic,publickey,password,keyboard-interactive).
Red Cricket
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.