Mam skrypt, który ssh'uje kilka serwerów przy użyciu uwierzytelniania za pomocą klucza publicznego. Jeden z serwerów przestał zezwalać na logowanie się skryptu z powodu problemu z konfiguracją, co oznacza, że skrypt blokuje się pytaniem „Hasło:”, na które oczywiście nie może odpowiedzieć, więc nawet nie próbuje reszty serwerów na liście.
Czy istnieje sposób, aby powiedzieć klientowi ssh, aby nie monitował o hasło, jeśli uwierzytelnienie klucza nie powiedzie się, ale zamiast tego po prostu zgłosić błąd połączenia i pozwolić na kontynuowanie działania mojego skryptu?
źródło
ssh user@host -oPreferredAuthentications=publickey -C 'echo success'
Dodaj następujące elementy do
~/.ssh/config
:i aby wyłączyć uwierzytelnianie hasła na serwerze, dodaj tę samą linię
/etc/ssh/sshd_config
i uruchom ponowniesshd
.źródło
Jeśli używasz dropbear, po prostu dodaj
-s
opcję „ ”, aby wyłączyć uwierzytelnianie za pomocą hasła.źródło
W wierszu poleceń (lub
~/.ssh/config
) możesz ustawićPreferredAuthentications
.źródło
ssh -o PreferredAuthentications=publickey
ssh "-oPreferredAuthentications publickey"