Wie überprüfe ich das sshd-Protokoll?

126

Ich habe Ubuntu 9.10 mit installiert sshdund kann mich erfolgreich mit Login und Passwort anmelden. Ich habe ein RSASchlüssel-Login konfiguriert und nun wie erwartet "Server hat unseren Schlüssel abgelehnt". Ok, jetzt möchte ich das sshdLog überprüfen, um ein Problem herauszufinden. Ich habe geprüft /etc/ssh/sshd_configund es hat

SyslogFacility AUTH
LogLevel INFO

Okay. Ich schaue /var/log/auth.logund ... es ist leer O_O. Ändern Loglevelzu VERBOSEhilft nichts - auth.logist noch leer. Irgendwelche Hinweise, wie ich das sshdProtokoll überprüfen kann ?

grigoryvp
quelle
7
Haben Sie Ihre Syslog-Konfiguration überprüft? Ich führe Ubuntu nicht aus, aber es leitet die AUTH-Funktion möglicherweise in eine andere Protokolldatei um. Vielleicht / var / log / messages?
Prof. Moriarty
Wie überprüfe ich eine Syslog-Konfiguration? Leider bin ich kein sehr guter Linuxer :(. cat /var/log/messages | grep sshZeigt nichts :(.
grigoryvp
Du hast Recht. /etc/syslog.confleitet AUTH weiter an /var/logauth.log. Bitte schreibe deine Antwort, damit ich sie annehmen kann :)
grigoryvp
3
Auf meinen Servern meldet sich sshd unter / var / log / secure an. Dies wird in /etc/rsyslog.conf in der Zeile konfiguriert, die mit "authpriv. *"
Beginnt
1
authpriv ?? Wie zum Teufel sollten wir wissen, dass das irgendetwas mit sshd zu tun hat? :-)
Spencer Williams

Antworten:

7

Wenn im Moment niemand anderes das System benutzt, könnten Sie das tun, was ich in solchen Fällen getan habe:

  • Stoppen Sie den SSHD-Dienst (zumindest war ich in der Lage, dies zu tun, während ich über SSH angemeldet war.)
  • Starten Sie sshd manuell und fügen Sie einige -d-Optionen hinzu, um eine ausführlichere Debug-Ausgabe zu erhalten. Es sei denn, Sie haben etwas Funky los, sollte es die gleichen Schlüssel und Config verwenden, wenn es richtig gestartet wird
Peto
quelle
143
Das Stoppen von SSHD auf einem Remote-Server ist eine wirklich schlechte Idee. Dies kann das Problem für einige (oder die meisten) Setups die meiste Zeit lösen, aber wenn ALLES schief geht - Ihre Verbindung, Stromversorgung an beiden Enden, Vergesslichkeit usw. - sind Sie von der Box ausgeschlossen. Welches sind schlechte Nachrichten.
Sudowned
1
Nun, es sollte beachtet werden, dass die einzige Möglichkeit, den Dienst nach dem manuellen Stoppen zu starten, darin besteht, eine andere Art von Zugriff darauf zu haben, wie z. B. eine andere Nicht-SSH-Remoteverbindung, oder Sie sitzen davor.
Spencer Williams
26
Wie beantwortet dies die Frage? Ich bin von einer Websuche hier gelandet, in der Erwartung, zu erfahren, wie man die SSHD-Protokolldateien überprüft, und nicht, was bei Ihnen für ein Problem funktioniert hat die Frage, die sie wollen, es zu sein ....
4
Sie können einen anderen SSHD an einem anderen Port starten. Stellen Sie eine Verbindung zu diesem her. Stoppen Sie dann den Haupt-SSHD und starten Sie einen neuen an Port 22. Wenn etwas fehlschlägt, starten Sie die Box mit Ihrem DRAC oder Cloud-Management neu. Sie sollten sshd beim Booten richtig starten lassen? Keine Bange.
Bruno Bronosky
1
@JoelESalas Die Community entscheidet nicht, welche Antworten akzeptiert werden.
Kasperd
155

Erstellen Sie eine Antwort basierend auf den obigen Kommentaren und schreiben Sie @Prof gut. Moriarty und @Eye of Hell

SSH-Authentifizierungsfehler werden hier protokolliert /var/log/auth.log

Das Folgende sollte Ihnen nur ssh-bezogene Protokollzeilen geben

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

Um auf der sicheren Seite zu sein, holen Sie sich die letzten paar hundert Zeilen und suchen Sie dann.

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

RAM
quelle
8
Diese Antwort. Andere Antwort mit grünem Pfeil ist falsch. Pfeil ändern.
Maschenfelder
5
Warum nicht tail -f ...in Echtzeit überwachen? Wäre dies ein Problem mit größeren Protokolldateien?
ingh.am
6
less +F ...wird in Echtzeit 'Tail', und es ist viel mächtiger als Tail
Northben
5
Und lnavist noch besser als weniger / Schwanz
Wayne Werner
7
Ps: Wenn es sich bei Ihrem Server um einen Red Hat-Server (als CentOS) handelt, lautet der Pfad für das Protokoll sshd / login records / var / log / secure (überprüfen Sie den Ordner / var / log auch auf die Protokolldateien mit bestimmten Daten). Siehe diese Antwort: serverfault.com/questions/465833/…
Brian Hellekin
15

Wenn Sie die fehlerhafte Verbindung wieder leicht versuchen können, eine Möglichkeit , einfache Möglichkeit, einen SSH - Server auf einem freien Port zu starten , wie 2222:

/usr/sbin/sshd -d -p 2222

und wiederholen Sie die Verbindung mit:

ssh -p 2222 user@host

Durch die Verwendung des anderen Ports -p 2222müssen wir den SSH-Hauptserver nicht anhalten, was uns ausschließen könnte.

Siehe auch: https://unix.stackexchange.com/a/55481/32558

Ciro Santilli ist ein Schauspieler
quelle
1
Eine der besten Optionen, insbesondere wenn Sie nur über SSH-Zugriff auf einen Server verfügen. Durch das Debuggen der Verbindung durch Stoppen des SSH-Servers wird die Sitzung beendet. Starten Sie einfach einen neuen ssh-Daemon an einem anderen Port und testen Sie die Anmeldung über diesen Port.
Attila Antal
1

Wenn Sie alle Protokollmeldungen zu sshd anzeigen möchten, führen Sie Folgendes aus:

grep -rsh sshd /var/log |sort
Gast
quelle
2
Protokolle beginnen mit Einträgen, Mar 14 19:52:04die das Jahr ausschließen, und sind nicht einfach zu sortieren (obwohl Sie möglicherweise das Glück haben, sort --month-sortwenn Sie nicht über eine Grenze zwischen Jahren hinausgehen). Die Protokolldateien selbst sind bereits sortiert, sodass Sie sie nur in der richtigen Reihenfolge scannen müssen. Außerdem ist der rekursive grep -rAufruf auf Systemen mit großen Protokollen sehr langsam. Es gibt keinen Grund, zusätzlich Dinge wie Ihre HTTPD-Protokolle zu scannen.
Adam Katz
1

Du kannst tail -f /var/log/auth.log

Aditya Mittal
quelle
1
Willkommen bei ServerFault. Hast du die Frage gelesen? Er bekommt keine Daten in dieser Datei. tailnutzlos, wenn es keine Daten enthält.
Küken
@chicks Das ist lustig. Die Antwort mit den meisten Stimmen ist fast gleich wie
folgt