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.