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.


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ę.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.