Wie kann ich eingehende SFTP-Konversationen debuggen/verfolgen?

Wie kann ich eingehende SFTP-Konversationen debuggen/verfolgen?

Meine Anwendung (JetBrains CLion) stellt eine Verbindung zu meinem Remote-Server her SFTPund legt dort Dateien ab. Leider werden Dateien mit Null-Bytes angezeigt. Ich möchte herausfinden, was schief läuft.

Kann ich etwas auf meinem Server ausführen, um SFTPSitzungen in Echtzeit zu überwachen und zu sehen, was passiert. Ich bin rootauf dem Server. Auf dem Server läuft Ubuntu 16.

PS: Wenn ich SFTPmich selbst und putdie Dateien ausführe, ist alles in Ordnung.


Auf der Clientseite sehe ich keine Probleme in den Protokollen: nur einige Sitzungen mit putund statähnliche Befehle mit OkAusgaben. Ich würde also auch gerne die Serverseite debuggen.

Antwort1

DerOpenSSH-Serververwendet ein Programm namensSFTP-Serverfür SFTP-Sitzungen. sftp-serverbietet einige Optionen zur Steuerung der Protokollierung:

-f Protokolleinrichtung
Gibt den Facility-Code an, der beim Protokollieren von Nachrichten vom SFTP-Server verwendet wird. Mögliche Werte sind: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Der Standardwert ist AUTH.

-l Protokollebene
Gibt an, welche Nachrichten vom SFTP-Server protokolliert werden. Mögliche Werte sind: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 und DEBUG3. INFO und VERBOSE protokollieren Transaktionen, die der SFTP-Server im Auftrag des Clients ausführt. DEBUG und DEBUG1 sind gleichwertig. DEBUG2 und DEBUG3 geben jeweils höhere Ebenen der Debugausgabe an. Der Standardwert ist ERROR.

Um diese anzuwenden, öffnen Sie diesshd_configDatei und suchen Sie die SubsystemZeile für SFTP. Sie sieht wie eine dieser beiden Zeilen aus:

Subsystem   sftp    /path/to/sftp-server
Subsystem   sftp    internal-sftp

Was auch immer Sie haben, hängen Sie die Protokollierungsargumente am Ende an:

Subsystem   sftp    /path/to/sftp-server -l DEBUG3

Nach dem Bearbeiten sshd_configmüssen Sie einen Neustart durchführen, sshddamit die Änderung wirksam wird.

Sobald Sie dies alles erledigt haben, sollten SFTP-Sitzungen beginnen, Debuginformationen in Syslog zu protokollieren. Sie können die Debugmeldungen verwenden, um die von einem Client gesendeten Befehle und die Dateisystemoperationen zu verfolgen, die der SFTP-Server ausführt.

Das SFTP-Server-Programm ist in C geschrieben und Sie finden den QuellcodeHierWenn Sie ihn verstehen, wird Ihnen der Quellcode wahrscheinlich auch beim Verständnis der Protokollmeldungen hilfreich sein.

verwandte Informationen