通过 WinSCP 使用 root 帐户连接到服务器时出现“收到太大的 SFTP 数据包”错误

Gua*_*hen 4 ubuntu file-permissions winscp

我尝试了不同的方法并阅读了一些解决方案,包括:
为什么我无法以 root 身份进行 ssh?
使用 Winscp 进行编辑
以及来自 Ubuntu 论坛的文章

  1. 我不明白为什么当我ubuntu通过PuTTY连接时,我可以拥有root权限并修改文件。但是,当我通过 WinSCP 连接时ubuntu,我是另一个用户(我在两个连接软件上使用相同的用户名和相同的私钥(pem))并且无法修改文件。

  2. 然后我从上面的链接中找到了一些可能的解决方案。我尝试设置root密码和permitRootLogin。但是,当我使用用户名登录时root,它会显示:

    收到太大 (1349281121 B) SFTP 数据包。支持的最大数据包大小为 1024000B。该错误通常是由启动脚本(如 .profile)打印的消息引起的。该消息可以以“Plea”开头。

    无法初始化 SFTP 协议。主机是否运行 SFTP 服务器?

    而当我将用户名更改回 时ubuntu,它就可以工作(但当我不是用户时我无法修改文件root)。

我很困惑,请大家指点一下,我将不胜感激。

Mar*_*ryl 5

我相信您收到的错误消息已经解释了这一点。

您的服务器root帐户错误地设置了配置文件脚本。其中一些打印违反 SFTP 协议的消息。终端和非终端会话(分配和未分配 TTY 的会话)有不同的配置文件脚本。只能从用于终端会话的脚本打印消息。当您从用于非终端会话的配置文件脚本打印消息时,它会破坏使用严格协议(例如 SFTP 或 SCP)的任何客户端。

正如错误所述,该消息以“Plea”开头。它很容易成为像这样微不足道的事情

echo "Please be careful when using root account!"
Run Code Online (Sandbox Code Playgroud)

使用 SSH 终端(例如 PuTTY)登录时,您将看到一条完整的消息。

通常,您需要将打印消息的命令从.bashrcscript移至.bash_profile.

它适用于ubuntu帐户,因为其配置文件脚本不会打印错误消息。

另请参阅 WinSCP 文档以了解错误消息“接收到太大 (... B) SFTP 数据包。支持的最大数据包大小为 102400 B”