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?

grigoryvp
źródło
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
Peto
źródło
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'

Baran
źródło
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

Ciro Santilli
źródło
1

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

grep -rsh sshd /var/log |sort
Gość
źródło
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

Aditya Mittal
źródło
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