SFTP“无法连接到服务器错误”

SFTP“无法连接到服务器错误”

我在通过 SFTP 连接服务器时遇到问题。我可以通过 SSH 顺利进入系统,但出于某种奇怪的原因,我无法使用 SFTP(以前我可以)。

我已清除所有 iptables 规则,iptables -F但仍然无法访问。我已删除子系统(以允许完全访问),但仍然无法访问。我无论如何也想不出问题所在。因此,无法解决问题。

更新

子系统配置部分来自http://pastebin.com/eZwZ5Z7w

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp sftp-server

答案1

删除 sftp 子系统会禁用 sftp。尝试再次添加条目。如果重新启动 ssh 服务后仍然不起作用,请使用 sshd 配置更新问题。

更新

您提供的配置没有给出完整路径,请尝试使用注释版本。

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

例如,我的配置有

# grep sftp /etc/ssh/sshd_config 
Subsystem       sftp    /usr/libexec/openssh/sftp-server

如果我通过定位查找文件,它会确认它仅位于那里。

# locate sftp-server
/usr/libexec/openssh/sftp-server
/usr/share/man/man8/sftp-server.8.gz

答案2

这可能对原始海报没有帮助,但我遇到了导致相同症状的另一个原因。

症状:当我sftp -v <user>@<host>打印后连接阻塞:

debug1: Sending subsystem: sftp

原因:为了绕过系统默认的 shell 配置,我在顶部添加了以下行~/.bashrc

exec env -i HOME=$HOME TERM=$TERM bash --noprofile --rcfile ~/.bash2

甚至只是exec bash导致同样的问题。我想这是有道理的 - 来源~/.bashrc永远不会返回 - 相反,执行了 bash 的新实例并替换了旧实例。

ssh 服务器在运行之前需要获取 shell 配置文件,这也许令人惊讶/usr/lib/openssh/sftp-server

更新:另请参阅 OpenSSH FAQ 中的相关条目:
http://openssh.com/faq.html#2.9
(标题为“sftp/scp 连接失败,但 ssh 正常”的条目)

相关内容