Por que o SFTP não funciona (o SSH funciona)?

Por que o SFTP não funciona (o SSH funciona)?

Tenho servidor dedicado com Ubuntu Server 16.04 + VestaCP. O acesso SSH funciona perfeitamente, mas o SFTP falhou. Não sei quando quebrou, mas antes tudo funcionou como esperado.

Quando eu me conecto ao sftp do mashine local, funciona:

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

Quando tento fazer isso no host remoto, recebo 1 linha:

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

Nada acontece e a conexão cai por tempo limite. Não recebo nenhum erro e não consigo determinar a causa deste problema.

Eu tenho configurações padrão em /etc/ssh/sshd_config:

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

Não quero substituí-lo por internal-sftp. Isso deve funcionar sem alterações, porque funcionou antes.

Responder1

Quando um cliente SFTP se conecta a um servidor SFTP, oprimeira troca de dadosO que acontecerá é que o cliente envie sua versão do protocolo SFTP ao servidor. O servidor responde com a versão do protocolo SFTP que deseja usar para a sessão e, em seguida, o cliente e o servidor prosseguem a partir daí.

Você pode ver no seu primeiro exemplo de log que o cliente enviou sua versão para o servidor:

6 de março 13:52:37 servidor sftp local [2120]: recebeu a versão 3 do cliente

Essa linha está faltando na segunda amostra de log. A explicação mais simples para isso é que o cliente nunca o enviou.

Resumindo, parece que o cliente SFTP usado no segundo caso está com defeito. Não está enviando a mensagem que deveria ser enviada para iniciar a troca SFTP.

informação relacionada