在PyCharm中使用远程解释器时出现“指示包长度太大”错误

zrfyljdw  于 5个月前  发布在  PyCharm
关注(0)|答案(4)|浏览(132)

我在PyCharm中设置了一个远程SSH解释器,但是当我试图在远程机器上选择解释器的位置时,我得到了以下错误:

Indicated packet length 1952805748 too large

字符串
我该如何解决此问题?


的数据

rqqzpn5f

rqqzpn5f1#

我得到这个错误是因为我的.bashrc文件打印到stdout. .bashrc是在PyCharm通过SFTP连接到远程解释器的机器时获得的。它必须是静默的,否则它会干扰SFTP协议。
解决方案是在不交互运行时提前退出.bashrc,方法是将这行放在顶部:

# If not running interactively, return early
[[ $- == *i* ]] || return

字符串
进一步阅读:

vlurs2pr

vlurs2pr2#

经过一点检查,我找到了这个问题的最终解决方案。
实际上,这不是关于pycharmintellij的问题。
sync文件到远程服务器的基本工作原理是使用sftp从远程服务器上传文件和下载文件。
也许你已经注意到,它的作品时,使用root用户同步。
对于不同的人,他们使用不同的sftp实用程序,如puttyLinux clientWindows cmdPower shellxshell等。
通过在xshell中使用命令sftp root@hostsftp user@host(其中用户是您登录的用户)。
xshell将要求您在对话框中输入密码。
这两个命令都可以工作。
但是当你通过相同的命令使用windows cmd时,这里的消息会跳出来。

Received message too long 1399157792
Ensure the remote shell produces no output for non-interactive sessions.

字符串
你会看到,pycharm只是转发这个信息。
下面是关于长消息sftp gives an error: "Received message too long" and what is the reason?的相关问题
因此,我们需要将sftp server配置更改为non-interactive模式。
通过编辑/etc/ssh/sshd_config,需要你有root permission或要求服务器管理员做.

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


然后通过systemctl restart sshd重新启动sshd服务

rfbsl7qr

rfbsl7qr3#

我遇到了类似的问题。我每次登录时都在pip更新集群中的一堆软件。所以如果pycharm每次推送时都在集群中运行bashrc,并且出于某种原因它处理了它的输出,那么这就是一个问题。我删除了remote/cluster中我的bashrc中的所有打印行。

gcuhipw9

gcuhipw94#

请注意不要将[[ $- == *i* ]] || return添加到.bashrc,除非它是您的本地计算机。
与这里描述的类似,scp抱怨了.bashrc的输出(它在登录时给出了一个问候)。有趣的是,FreeBSD或OpenBSD SSH从来没有抱怨过同样的问题。但是Ubuntu.
好吧,我记得在过去的一些版本的SSH有类似的问题,所以我确实添加了[[ $- == *i* ]] || return到我的.bashrc,正如Killan Obermeier上面建议的那样。我这样做了,下一次无法登录,也无法本地或远程登录。在收到正确的密码后,提示将重置为登录LOL。这是一个仁慈的这不是一些远程机器。

相关问题