Как отладить/отследить входящие SFTP-диалоги?

Как отладить/отследить входящие SFTP-диалоги?

Мое приложение (JetBrains CLion) подключается к моему удаленному серверу SFTPи размещает там файлы. К сожалению, файлы появляются заполненными нулевыми байтами. Я хочу отследить, что идет не так.

Могу ли я запустить что-то на своем сервере, чтобы отслеживать SFTPсеансы в реальном времени и видеть, что происходит. Я rootна сервере. На сервере установлена ​​Ubuntu 16.

P.S. Если я запускаю SFTPсебя и putфайлы, то они в порядке.


На стороне клиента я не вижу никаких проблем в логах: просто некоторая сессия с put, statи похожие команды с Okвыходами. Поэтому хотелось бы отладить и сторону сервера.

решение1

TheOpenSSH-сервериспользует программу под названиемsftp-сервердля сеансов SFTP. sftp-serverимеет несколько опций для управления ведением журнала:

-f log_facility
Указывает код объекта, который используется при регистрации сообщений с sftp-сервера. Возможные значения: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Значение по умолчанию — AUTH.

-l уровень_журнала
Указывает, какие сообщения будут регистрироваться sftp-server. Возможные значения: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 и DEBUG3. INFO и VERBOSE регистрируют транзакции, которые sftp-server выполняет от имени клиента. DEBUG и DEBUG1 эквивалентны. DEBUG2 и DEBUG3 каждый указывает более высокие уровни отладочного вывода. Значение по умолчанию — ERROR.

Чтобы применить их, вы открываете свою системуsshd_configфайл и найдите Subsystemстроку для SFTP. Она будет выглядеть как одна или другая из этих двух строк:

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

Что бы у вас ни было, добавьте аргументы протоколирования в конец:

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

После редактирования sshd_configнеобходимо перезапустить sshd, чтобы изменения вступили в силу.

После того, как вы все это сделаете, сеансы SFTP должны начать регистрировать отладочную информацию в syslog. Вы можете использовать отладочные сообщения для отслеживания команд, отправленных клиентом, и операций файловой системы, которые выполняет сервер SFTP.

Программа sftp-server написана на языке C, исходный код можно найтиздесь. Если вы сможете его понять, то, вероятно, исходный код будет вам полезен для понимания сообщений журнала.

Связанный контент