Почему SFTP не работает (SSH работает)?

Почему SFTP не работает (SSH работает)?

У меня есть выделенный сервер с 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

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

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

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

Эта строка отсутствует во втором образце журнала. Самое простое объяснение этому — клиент ее не отправлял.

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

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