У меня есть выделенный сервер с Ubuntu Server 16.04 + VestaCP. Доступ по SSH работает отлично, но SFTP сломался. Я не знаю, когда это сломалось, но до этого все работало как положено.

Когда я подключаюсь к sftp из локальной машины, это работает:

Mar  6 13:52:37 local sftp-server[2120]: session opened for local user user1 from [10.10.80.120]
Mar  6 13:52:37 local sftp-server[2120]: received client version 3
Mar  6 13:52:37 local sftp-server[2120]: debug3: request 1: realpath
Mar  6 13:52:37 local sftp-server[2120]: realpath "."
Mar  6 13:52:37 local sftp-server[2120]: debug1: request 1: sent names count 1

Когда я пытаюсь сделать это с удаленного хоста, я получаю 1 строку:

Mar  6 19:34:06 server sftp-server[3545]: session opened for local user root from [xxx.xxx.xxx.xxx]

Ничего не происходит, и соединение прерывается по таймауту. Я не получаю никаких ошибок и не могу определить причину этой проблемы.

У меня есть настройки по умолчанию в /etc /ssh /sshd_config:

Subsystem sftp /usr/lib/openssh/sftp-server -l debug3

Я не хочу заменять его на internal-sftp. Это должно работать без изменений, потому что это работало раньше.

1 ответ1

0

Когда SFTP-клиент подключается к SFTP-серверу, первый обмен данными происходит для клиента, чтобы отправить свою версию протокола SFTP на сервер. Сервер отвечает версией протокола SFTP, которую он готов использовать для сеанса, а затем клиент и сервер продолжают работу с этого места.

В первом примере журнала вы можете видеть, что клиент отправил свою версию на сервер:

6 марта 13:52:37 локальный sftp-сервер [2120]: получена версия клиента 3

Эта строка отсутствует во втором примере журнала. Самое простое объяснение этому - клиент никогда его не отправлял.

Короче говоря, похоже, что клиент SFTP, используемый во втором случае, работает неправильно. Это не отправка сообщения, которое должно быть отправлено для начала обмена SFTP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .