Wie deaktiviere ich die Passwortabfrage auf der SSH-Client-Seite?

9

Ich habe ein Skript, das auf der SSH-Authentifizierung mit öffentlichem / privatem Schlüssel basiert. Das Problem ist, dass einige Systeme falsch konfiguriert sind und nicht die richtige Vertrauensstellung für öffentliche / private SSH-Schlüssel eingerichtet haben. Wenn dies passiert, sshfragen Sie mich nach einem Passwort, das die Ausführung des Skripts blockiert. Ich habe diesen Befehl ausprobiert:

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

Ich werde jedoch trotzdem zur Eingabe des Root-Passworts aufgefordert.

Red Cricket
quelle
Nach Versuch und Irrtum fand ich die Option, die ich brauchte. "PreferredAuthentications=publickey"
Red Cricket
ist das besser als die vorgeschlagene Lösung? (BatchMode)
Knocte

Antworten:

9

Der kanonische Weg, dies zu tun, ist mit der BatchModeOption:

ssh -o BatchMode=yes …

Nach dem Handbuch :

Bei der Einstellung „Ja“ wird die Abfrage von Passphrasen / Passwörtern deaktiviert. Diese Option ist nützlich in Skripten und anderen Stapeljobs, in denen kein Benutzer zur Eingabe des Kennworts anwesend ist.

Ich hätte erwartet, dass die Kombination von PasswordAuthentication=nound ChallengeResponseAuthentication=nogenug ist. ssh -vvkönnte einen Hinweis geben.

Gilles 'SO - hör auf böse zu sein'
quelle
Das funktioniert auch! $ 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