Wyłącz interaktywne logowanie w skryptach bash [duplikat]


2

To pytanie ma już odpowiedź tutaj:

Mam konfigurację uwierzytelniania opartą na kluczu SSH dla niektórych skryptów wdrażania. Istnieje jednak szansa, że ​​w pewnym momencie pliki uwierzytelniające nie zostaną poprawnie skonfigurowane. Nie chcę, aby moje skrypty powłoki prosiły o hasła, chcę, aby natychmiast zawiodły.

Za pomocą

ssh -o KbdInteractiveAuthentication = nie -o HasłoAuthentication = nie -o PubkeyAuthentication = tak test @ host

lub coś w tym stylu nie działa. Nie chcę zmieniać plików konfiguracyjnych, ponieważ skrypt można wykonać z dowolnego miejsca.


Czy nie możesz po prostu zezwolić tylko PubkeyAuth w konfiguracji sshd na hoście?
ott--

nie, każda rzecz musi być w swoim rozkazie.
Shahzada Hatim

1
openssh ma dla tego tryb wsadowy: serverfault.com/questions/61915/…
ott--

openssh ma tryb wsadowy do tego: serverfault.com/questions/61915/…
ott--

@ott jako odpowiedź , a nie komentarz ...
Daniel Beck

Odpowiedzi:


4

Właśnie miałem ten problem i znalazłem odpowiedź tutaj:

http://www.gossamer-threads.com/lists/openssh/dev/47179

Zasadniczo openssh używał interaktywnej klawiatury do implementacji wyzwania-repsonse. Więc jeśli jedna z tych opcji jest ustawiona na „tak”, wówczas klawiatura-interaktywna zostaje ustawiona na „tak” w kodzie. Musisz ustawić oba na „nie”, aby uzyskać pożądane zachowanie.

Musiałem zrobić:

ssh -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no

Oczywiście to BatchMode=yesustawienie zająłoby się nimi wszystkimi i zapewniłoby w przyszłości ochronę przed wszelkimi nowymi interaktywnymi metodami uwierzytelniania użytkowników w przyszłości.

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.