Meine Anwendung (JetBrains CLion) stellt eine Verbindung zu meinem Remote-Server her SFTP
und 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 SFTP
Sitzungen in Echtzeit zu überwachen und zu sehen, was passiert. Ich bin root
auf dem Server. Auf dem Server läuft Ubuntu 16.
PS: Wenn ich SFTP
mich selbst und put
die Dateien ausführe, ist alles in Ordnung.
Auf der Clientseite sehe ich keine Probleme in den Protokollen: nur einige Sitzungen mit put
und stat
ähnliche Befehle mit Ok
Ausgaben. Ich würde also auch gerne die Serverseite debuggen.
Antwort1
DerOpenSSH-Serververwendet ein Programm namensSFTP-Serverfür SFTP-Sitzungen. sftp-server
bietet 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 Subsystem
Zeile 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_config
müssen Sie einen Neustart durchführen, sshd
damit 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.