Jak sprawdzić dziennik sshd?


124

Mam zainstalowany Ubuntu 9.10 sshdi mogę się z nim pomyślnie połączyć za pomocą loginu i hasła. Skonfigurowałem RSAlogin klucza i teraz „Serwer odrzucił nasz klucz” zgodnie z oczekiwaniami. Ok, teraz chcę sprawdzić sshdlog, aby znaleźć problem. Zbadałem /etc/ssh/sshd_configi to zrobiło

SyslogFacility AUTH
LogLevel INFO

Dobrze. Patrzę /var/log/auth.logi ... jest pusta O_O. Zmiana Loglevelna VERBOSEnic nie pomaga - auth.logwciąż jest pusta. Wszelkie wskazówki, jak mogę sprawdzić sshddziennik?


7
Czy sprawdziłeś konfigurację syslog? Nie uruchamiam Ubuntu, ale może przekierować narzędzie AUTH do innego pliku dziennika. Może / var / log / messages?
— Prof. Moriarty

Jak sprawdzić konfigurację syslog? Niestety, nie jestem zbyt dobrym Linuxem :(. cat /var/log/messages | grep sshNic nie pokazuje :(.
— grigoryvp

Masz rację. /etc/syslog.confprzekierowuje AUTH na /var/logauth.log. Napisz odpowiedź, aby ją zaakceptować :)
— grigoryvp

3
Na moich serwerach sshd loguje się do / var / log / secure. Jest to skonfigurowane w /etc/rsyslog.conf, na linii zaczynającej się od „authpriv. *”
— Isaac Betesh

1
authpriv ?? Skąd, do cholery, mieliśmy wiedzieć, że ma to coś wspólnego z sshd? :-)
— Spencer Williams

Odpowiedzi:


7

Jeśli w tej chwili nikt inny nie korzysta z systemu, możesz zrobić to, co zrobiłem w takich przypadkach:

  • zatrzymaj usługę sshd (przynajmniej byłem w stanie to zrobić, gdy jestem zalogowany przez ssh)
  • uruchom sshd ręcznie i dodaj kilka opcji -d, aby uzyskać więcej pełnych wyników debugowania. Chyba że masz coś fajnego, powinieneś używać tych samych klawiszy i konfigurować tak, kiedy jest uruchamiany poprawnie

142
Zatrzymanie SSHD na zdalnym serwerze to naprawdę zły pomysł. Może to rozwiązać problem w przypadku niektórych (lub większości) konfiguracji przez większość czasu, ale jeśli WSZYSTKO pójdzie nie tak - połączenie, zasilanie po obu stronach, zapomnienie itp. - jesteś zablokowany. Co jest złe wieści.
— Sudown

1
Cóż, należy zauważyć, że jedynym sposobem na uruchomienie usługi po ręcznym jej zatrzymaniu byłby dostęp do niej w inny sposób, na przykład inne połączenie zdalne inne niż SSH lub siedzenie przed nią.
— Spencer Williams

26
Jak to odpowiada na pytanie? Przybyłem tutaj z wyszukiwarki internetowej, spodziewając się, jak sprawdzić pliki dziennika SSHD, a nie to, co zadziałało w przypadku jakiegoś problemu ... Cholera, chciałbym, żeby czytelnicy w sieci Stack Exchange przeczytali i odpowiedzieli na pytanie, a nie pytanie, jakie chcą, aby było ...

4
Możesz uruchomić kolejny sshd na innym porcie. Połącz się z tym. Następnie zatrzymaj główny sshd i uruchom nowy na porcie 22. Jeśli coś się nie powiedzie, uruchom ponownie urządzenie za pomocą DRAC lub zarządzania chmurą. Powinieneś mieć sshd zaczynający się przy starcie, prawda? Bez obaw.
— Bruno Bronosky

1
@JoelESalas Społeczność nie decyduje, które odpowiedzi są akceptowane.
— kasperd

155

Utworzenie odpowiedzi w oparciu o powyższe komentarze, kredyt dla @Prof. Moriarty i @Eye of Hell

Błędy uwierzytelniania SSH są tutaj rejestrowane /var/log/auth.log

Poniższe informacje powinny zawierać tylko wiersze dziennika związane z ssh

grep 'sshd' /var/log/auth.log

Aby być bezpiecznym, weź kilkaset ostatnich wierszy, a następnie wyszukaj (ponieważ jeśli plik dziennika jest zbyt duży, grep na całym pliku zużyłby więcej zasobów systemowych, nie mówiąc już o dłuższym uruchomieniu)

tail -500 /var/log/auth.log | grep 'sshd'


8
Ta odpowiedź Inna odpowiedź z zieloną strzałką jest fałszywa. Zmień strzałkę.
— meshfields

5
Dlaczego nie wykorzystać tail -f ...do monitorowania go w czasie rzeczywistym? Czy byłby to problem z większymi plikami dziennika?
— ingh.am

6
less +F ...będzie „ogoniał” w czasie rzeczywistym i jest znacznie potężniejszy niż ogon
— northben

5
I lnavjest nawet lepszy niż mniej / tail
— Wayne Werner

7
Ps: jeśli twój serwer to Red Hat (jako CentOS), ścieżką dziennika sshd / login records jest / var / log / secure (sprawdź folder / var / log dla plików dziennika z określonych dat). Zobacz tę odpowiedź: serverfault.com/questions/465833/…
— Brian Hellekin

14

Jeśli możesz łatwo spróbować ponownie nawiązać połączenie nieudane, jednym ze sposobów jest uruchomienie:

/usr/sbin/sshd -d -p 2222

a następnie ponów próbę połączenia z:

ssh -p 2222 user@host

Używamy -p 2222, abyśmy nie musieli zatrzymywać głównego serwera SSH, co mogłoby Cię zablokować.

Zobacz także: https://unix.stackexchange.com/a/55481/32558


1

Jeśli chcesz zobaczyć wszystkie komunikaty dziennika dotyczące sshd, uruchom to:

grep -rsh sshd /var/log |sort

2
Dzienniki zaczną się od wpisów, Mar 14 19:52:04które wykluczają rok i nie są łatwe do sortowania (chociaż możesz mieć szczęście, sort --month-sortzakładając, że nie przekroczysz granicy między latami). Same pliki dziennika są już posortowane, więc wystarczy je przeskanować we właściwej kolejności. Ponadto grep -rwywołanie rekurencyjne będzie bardzo wolne w systemach z dużymi dziennikami. Nie ma powodu, aby dodatkowo skanować takie rzeczy, jak dzienniki HTTPD.
— Adam Katz

1

Możesz tail -f /var/log/auth.log


1
Witamy w ServerFault. Czy czytałeś pytanie? Nie pobiera danych w tym pliku. tailStanie się bezużyteczny, jeśli nie będzie w nim żadnych danych.
— pisklęta

@ laski To zabawne. Odpowiedź z większością głosów jest prawie taka sama.
— Qback
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.