Sprawdź /etc/ssh/ssh_configi /etc/ssh/sshd_configsprawdź, czy nic, co chcesz, jest wyłączone.
Kristopher Johnson
Będziesz także chciał sprawdzić sshd_config.
Vagnerr
Dzięki. Zaktualizowałem odpowiedź (która pierwotnie wspomniała tylko o ssh_config).
Kristopher Johnson
Wszystkie powyższe dyskusje są idealne, jeśli używasz ssh w stylu openssh. Jeśli używasz ssh2, masz zupełnie dziwny sposób zarządzania kluczami. W tym artykule omówiono, jak i co. burnz.wordpress.com/2007/12/14/…
Chris
1
Zazwyczaj sprawdzanie /var/log/auth.logsystemów Debian lub /var/log/secureRedHat powinno dać ci jasną radę na temat tego, co jest źle skonfigurowane (zwykle problemy z uprawnieniami)
Giovanni Toraldo
Odpowiedzi:
15
Chociaż Twój problem mógł już zostać rozwiązany przez inne odpowiedzi, zablokowałem się z wystarczającej liczby maszyn, aby nie sprawdzać poprawności zmian sshd_config przed wypisaniem się, dlatego opracowałem poniższy proces, który może być przydatny do przyszłego debugowania zmian konfiguracji sshd:
NIE WOLNO ODŁĄCZAĆ aktywnego połączenia ssh, dopóki PO teście nie zweryfikuje, że zachowanie jest zgodne z oczekiwaniami.
za. sprawdź, co Twoim zdaniem powinien robić sshd
b. sprawdź poprawność konfiguracji za pomocą „-t”
do. uruchom pełną testową wersję serwera, na którym możesz monitorować na żywo
re. rozpocznij pełne „testowe” połączenie klienta, które możesz monitorować na żywo
za. sprawdź, co Twoim zdaniem powinien robić sshd
Przejrzyj plik konfiguracyjny sshd bez całego komentarza za pomocą czegoś takiego jak poniżej (zakładając, że sshd_config jest poprawnym plikiem w / etc / ssh)
To po prostu wszystko usuwa, więc weryfikujemy to, co naszym zdaniem zmieniamy (niekoniecznie to, czy jest poprawne, czy nie).
b. sprawdź poprawność konfiguracji za pomocą „-t”
Ze strony podręcznika sshd używam,
-t Tryb testowy. Sprawdź tylko poprawność pliku konfiguracyjnego i poczytaj klucze. Jest to przydatne do niezawodnej aktualizacji sshd, ponieważ opcje konfiguracji mogą ulec zmianie.
Inne zmiany mogą mieć bardziej subtelne okoliczności. Na przykład nie wyłączaj uwierzytelniania za pomocą hasła, dopóki nie upewnisz się, że uwierzytelnianie za pomocą klucza publicznego działa poprawnie.
do. uruchom pełną testową wersję serwera, na którym możesz monitorować na żywo
$ sudo / usr / sbin / sshd -ddd -p 9999
Dzięki temu twoja istniejąca sesja robocza jest aktywna, ale daje ci kolejną instancję sshd do zweryfikowania nowych zmian konfiguracji. Dysk SSHD działa teraz na pierwszym planie do portu zdefiniowanego przez użytkownika (w naszym przykładzie 9999) i przekazuje wiele głośnych informacji debugowania, które można śledzić w / var / log / authlog (lub ewentualnie /var/log/auth.log w systemie operacyjnym).
re. rozpocznij pełne „testowe” połączenie klienta, które możesz monitorować na żywo
Uruchom połączenie klienta ssh w trybie pełnym, aby wyświetlić na ekranie więcej informacji, które mogą pomóc w lepszym debugowaniu błędu.
$ ssh -vvv -p 9999 nazwa-serwera
Powinieneś teraz mieć wystarczającą ilość informacji w plikach dziennika serwera lub na ekranie połączenia klienta, aby odizolować problem.
Rozwiązanie zasadniczo sprowadza się do uprawnień do plików (jak pokazują Magnar i setatakahashi)
Myślę, że powinieneś również sprawdzić plik ssh_config po stronie klienta, aby upewnić się, że działa zgodnie z oczekiwaniami. Użyj czegoś takiego jak poniżej, aby wymazać komentarze:> grep -v "^ #" / etc / ssh / ssh_config | grep -v "^ $"
samt
Cóż, konfigurację ssh klienta można naprawić w dowolnym momencie, jest to serwer, z którego zostaniesz zablokowany, jeśli źle skonfigurujesz.
Soviero
33
Serwer zignoruje Twój plik autoryzowanych_kluczy, jeśli właściwości właściciela są nieprawidłowe. Zmiana tego na to naprawia:
ssh -vvv -l nazwa_użytkownika server.domain powie, jeśli wysyłanie prawidłowy klucz
Dave Cheney
Czasami widziałem, jak sshd narzeka na złe uprawnienia do katalogu domowego - więc dodawałem „chmod o-rwx ~” (lub przynajmniej „chmod ow ~”) do listy, tak jak robił to setatakahashi. Zwykle staje się to oczywiste, gdy plik dziennika jest monitorowany - komunikaty o błędach, które tam widziałem, zawsze wskazywały właściwy kierunek.
Olaf
Ta odpowiedź wydaje się najbardziej prawdopodobna, ale komentarz Dave'a Cheneya jest jedynym sposobem, aby zobaczyć, co się naprawdę dzieje. Sprawdź także dzienniki serwera.
dwc
To był mój problem. Godziłem się z tym godzinami. Dzięki wielkie!
Sam Soffes,
1
To załatwiło sprawę, ale moje dotychczasowe uprawnienia były 0775i 0644odpowiednio. Dlaczego pomogło ograniczenie uprawnień? Czy jest to gdzieś skonfigurowane zabezpieczenie?
Znakomity punkt na temat ~, musisz upewnić się, że nikt inny niż ty nie może pisać do twojego katalogu domowego, w przeciwnym razie mogliby zmienić nazwę twojego katalogu ~ / .ssh
Dave Cheney
ostatni chmod powinien być: $ chmod 600 ~/.ssh/authorized_keysnie$ chmod 600 ~/.sHh/authorized_keys
SooDesuNe
3
jakie powinny być wartości atrybutów ?
Michael
0
Kolejna ważna pułapka ..
Jeśli twój katalog domowy jest zaszyfrowany, sshd nie będzie miał dostępu do ~ / .ssh / uprawnionych_ kluczy.
/etc/ssh/ssh_config
i/etc/ssh/sshd_config
sprawdź, czy nic, co chcesz, jest wyłączone./var/log/auth.log
systemów Debian lub/var/log/secure
RedHat powinno dać ci jasną radę na temat tego, co jest źle skonfigurowane (zwykle problemy z uprawnieniami)Odpowiedzi:
Chociaż Twój problem mógł już zostać rozwiązany przez inne odpowiedzi, zablokowałem się z wystarczającej liczby maszyn, aby nie sprawdzać poprawności zmian sshd_config przed wypisaniem się, dlatego opracowałem poniższy proces, który może być przydatny do przyszłego debugowania zmian konfiguracji sshd:
NIE WOLNO ODŁĄCZAĆ aktywnego połączenia ssh, dopóki PO teście nie zweryfikuje, że zachowanie jest zgodne z oczekiwaniami.
za. sprawdź, co Twoim zdaniem powinien robić sshd
b. sprawdź poprawność konfiguracji za pomocą „-t”
do. uruchom pełną testową wersję serwera, na którym możesz monitorować na żywo
re. rozpocznij pełne „testowe” połączenie klienta, które możesz monitorować na żywo
za. sprawdź, co Twoim zdaniem powinien robić sshd
Przejrzyj plik konfiguracyjny sshd bez całego komentarza za pomocą czegoś takiego jak poniżej (zakładając, że sshd_config jest poprawnym plikiem w / etc / ssh)
To po prostu wszystko usuwa, więc weryfikujemy to, co naszym zdaniem zmieniamy (niekoniecznie to, czy jest poprawne, czy nie).
b. sprawdź poprawność konfiguracji za pomocą „-t”
Ze strony podręcznika sshd używam,
Inne zmiany mogą mieć bardziej subtelne okoliczności. Na przykład nie wyłączaj uwierzytelniania za pomocą hasła, dopóki nie upewnisz się, że uwierzytelnianie za pomocą klucza publicznego działa poprawnie.
do. uruchom pełną testową wersję serwera, na którym możesz monitorować na żywo
Dzięki temu twoja istniejąca sesja robocza jest aktywna, ale daje ci kolejną instancję sshd do zweryfikowania nowych zmian konfiguracji. Dysk SSHD działa teraz na pierwszym planie do portu zdefiniowanego przez użytkownika (w naszym przykładzie 9999) i przekazuje wiele głośnych informacji debugowania, które można śledzić w / var / log / authlog (lub ewentualnie /var/log/auth.log w systemie operacyjnym).
re. rozpocznij pełne „testowe” połączenie klienta, które możesz monitorować na żywo
Uruchom połączenie klienta ssh w trybie pełnym, aby wyświetlić na ekranie więcej informacji, które mogą pomóc w lepszym debugowaniu błędu.
Powinieneś teraz mieć wystarczającą ilość informacji w plikach dziennika serwera lub na ekranie połączenia klienta, aby odizolować problem.
Rozwiązanie zasadniczo sprowadza się do uprawnień do plików (jak pokazują Magnar i setatakahashi)
Powodzenia
źródło
Serwer zignoruje Twój plik autoryzowanych_kluczy, jeśli właściwości właściciela są nieprawidłowe. Zmiana tego na to naprawia:
źródło
0775
i0644
odpowiednio. Dlaczego pomogło ograniczenie uprawnień? Czy jest to gdzieś skonfigurowane zabezpieczenie?Sprawdź te atrybuty w / etc / ssh / sshd_config
źródło
$ chmod 600 ~/.ssh/authorized_keys
nie$ chmod 600 ~/.sHh/authorized_keys
Kolejna ważna pułapka ..
Jeśli twój katalog domowy jest zaszyfrowany, sshd nie będzie miał dostępu do ~ / .ssh / uprawnionych_ kluczy.
Zobacz tę odpowiedź
źródło