Próba zalogowania się do serwera ESXi powoduje błąd "Brak obsługiwanych metod uwierzytelniania (serwer wysłał: klucz publiczny)"
Summary: Ten artykuł zawiera szczegółowy przewodnik dotyczący rozwiązywania problemów z SSH z perspektywy ESXi. Jednak omówione tutaj koncepcje i rozwiązania mają również zastosowanie do innych systemów operacyjnych opartych na Linuksie, co czyni te informacje cennymi dla szerszego zakresu środowisk. ...
Symptoms
Próba zalogowania się SSH do serwera ESXi powoduje błąd "Brak obsługiwanych metod uwierzytelniania (serwer wysłany: klucz publiczny)" w następujący sposób:
Podczas próby zalogowania się z innego serwera ESXi wyświetlany jest następujący błąd:
Cause
Serwer odrzuca sesję SSH, ponieważ parametr "challengeresponseauthentication" w pliku sshd_config jest ustawiony na "no", a serwery nie są prawidłowo skonfigurowane do uwierzytelniania asymetrycznego (uwierzytelnianie za pomocą klucza publicznego i prywatnego RSA).
W rezultacie próba połączenia się z serwerem za pomocą PuTTY powoduje błąd "No supported authentication methods available (server sent: publickey).
Podobne zachowanie można zaobserwować, gdy użytkownik próbuje nawiązać połączenie SSH z innego hosta ESXi. W takim przypadku użytkownik otrzymuje błąd "Załaduj klucz '/.ssh/id_rsa': błąd w libcrypto", ale nie jest proszony o wprowadzenie hasła, a połączenie kończy się niepowodzeniem.
Jeśli serwery nie są prawidłowo skonfigurowane do uwierzytelniania asymetrycznego, ale parametr "ChallengeResponseAuthentication" jest ustawiony na "tak", użytkownik otrzyma komunikat o błędzie, ale następnie zostanie poproszony o wprowadzenie hasła. Po poprawnym wprowadzeniu hasła połączenie zostanie pomyślnie nawiązane.
Resolution
Połącz się z konsolą serwera docelowego przy użyciu interfejsu DCUI, a następnie edytuj challengeresponseauthentication na yes w pliku konfiguracyjnym /etc/ssh/sshd_config.
ChallengeResponseAuthentication
Ustawienie ChallengeResponseAuthentication określa, czy uwierzytelnianie typu wyzwanie-odpowiedź jest dozwolone dla połączeń SSH. Gdy ta opcja jest włączona, serwer SSH wymaga, aby klienci odpowiedzieli na wyzwanie przed zezwoleniem na uwierzytelnienie. Jest ona domyślnie włączona w niektórych implementacjach serwera SSH, ale może zostać wyłączona ze względów bezpieczeństwa w niektórych systemach, takich jak Red Hat, zgodnie z opisem w artykule Red Hat 336773.
ChallengeResponseAuthentication jest przestarzałym aliasem dla KbdInteractiveAuthentication. Źródło: OpenSSH: Informacje o wersji
Additional Information
Więcej szczegółów:
-
Kombinacja ustawienia challengeresponseauthentication i passwordauthentication generuje nieco inny monit:
ChallengeResponseAuthentication ustawione na wartość No i PasswordAuthentication ustawione na Tak:

challengeresponseauthentication ustawione na no i passwordauthentication ustawione na tak LUB oba ustawione na tak:

Więcej czynności rozwiązywania problemów:
-
Po stronie klienta użyj opcji -v w poleceniu ssh, aby wydrukować komunikaty debugowania o postępie ssh. Wiele opcji -v zwiększa szczegółowość (maksymalnie 3):

…

-
Na serwerze docelowym zwiększ poziom szczegółowości ustawienia LogLevel
, aby pobrać więcej szczegółów na temat nieudanej próby sesji SSH:
Poziom
dziennika Podaje poziom szczegółowości, który jest używany podczas rejestrowania komunikatów z sshd(8).Możliwe wartości: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 i DEBUG3 Wartość domyślna to INFO. DEBUG i DEBUG1 są równoważne. DEBUG2 i DEBUG3 określają wyższe poziomy danych wyjściowych debugowania. Logowanie na poziomie DEBUG narusza prywatność użytkowników i nie jest zalecane.
- Aby uzyskać więcej informacji na temat błędu, sprawdź plik /var/run/log/auth.log na serwerze docelowym.