在我的局域网中有不同的操作系统用于测试目的。所有机器都没有任何 iptables 或防火墙,因为它仅用于测试。我最近遇到了 sftp 的问题。我无法使用 winscp 从 win7 连接到任何 Debian 机器!它带有一个错误,指出Received too large (538975067 B) SFTP packet. Max supported packet size is 1024000 B... Cannot initialize SFTP protocol. Is the host running an SFTP server?..
Putty 可以通过 ssh 连接到这些计算机并以 root 身份登录,但不能使用 wincp。我在所有 Debian 机器上重新安装了 openssh-server,但没有任何改变。
答案1
Received too large (538975067 B) SFTP packet.
远程系统上的某些内容导致它通过 ssh 连接发送数据,该连接不属于 SFTP 协议的一部分。一个可能的解释是,远程用户的文件(或一些类似的 shell 启动文件)中有一个命令.bashrc
正在生成输出。您的 sftp 客户端期望从远程 sftp 服务器读取消息,但它正在获取其他数据。
538975067 转换为十六进制的 20201B5B,它代表字符“”、“”、“[”和 ESC(空格、空格、左括号、ESCape)。远程命令可能正在尝试打印转义序列设置文本颜色或类似的东西。
SFTP 在远程系统上创建非交互式会话;值得注意的是,在远程系统上运行的进程不会有电传打字机。您需要检查远程系统,找出哪个命令为 SSH 连接生成此输出,并防止非交互式会话发生这种情况。