Jak wyłączyć monit o hasło po stronie klienta ssh?

9

Mam skrypt, który polega na uwierzytelnianiu ssh klucza publicznego / prywatnego. Problem polega na tym, że niektóre systemy są źle skonfigurowane i nie mają skonfigurowanego odpowiedniego zaufania klucza publicznego / prywatnego ssh. Gdy tak się stanie, sshpoproś mnie o hasło blokujące wykonanie skryptu. Próbowałem tego polecenia:

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

Ale nadal pojawia się monit o hasło roota.

Red Cricket
źródło
Po próbach i błędach znalazłem potrzebną opcję. "PreferredAuthentications=publickey"
Red Cricket
czy to lepsze niż proponowane rozwiązanie? (BatchMode)
knocte

Odpowiedzi:

9

Kanonicznym sposobem na to jest BatchModeopcja:

ssh -o BatchMode=yes …

Zgodnie z instrukcją :

Jeśli ustawione na „tak”, zapytanie o hasło / hasło zostanie wyłączone. Ta opcja jest przydatna w skryptach i innych zadaniach wsadowych, w których nie ma użytkownika, który mógłby podać hasło.

Spodziewałbym się jednak kombinacji PasswordAuthentication=noi ChallengeResponseAuthentication=nobędzie wystarczający. ssh -vvmoże dać wskazówkę.

Gilles „SO- przestań być zły”
źródło
To też działa! $ 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