我在PyCharm中设置了一个远程SSH解释器,但是当我试图在远程机器上选择解释器的位置时,我得到了以下错误:
Indicated packet length 1952805748 too large
字符串我该如何解决此问题?
的数据
rqqzpn5f1#
我得到这个错误是因为我的.bashrc文件打印到stdout. .bashrc是在PyCharm通过SFTP连接到远程解释器的机器时获得的。它必须是静默的,否则它会干扰SFTP协议。解决方案是在不交互运行时提前退出.bashrc,方法是将这行放在顶部:
.bashrc
# If not running interactively, return early [[ $- == *i* ]] || return
字符串进一步阅读:
vlurs2pr2#
经过一点检查,我找到了这个问题的最终解决方案。实际上,这不是关于pycharm或intellij的问题。sync文件到远程服务器的基本工作原理是使用sftp从远程服务器上传文件和下载文件。也许你已经注意到,它的作品时,使用root用户同步。对于不同的人,他们使用不同的sftp实用程序,如putty,Linux client,Windows cmd,Power shell,xshell等。通过在xshell中使用命令sftp root@host或sftp user@host(其中用户是您登录的用户)。xshell将要求您在对话框中输入密码。这两个命令都可以工作。但是当你通过相同的命令使用windows cmd时,这里的消息会跳出来。
pycharm
intellij
sync
sftp
root
putty
Linux client
Windows cmd
Power shell
xshell
sftp root@host
sftp user@host
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或要求服务器管理员做.
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服务
systemctl restart sshd
sshd
rfbsl7qr3#
我遇到了类似的问题。我每次登录时都在pip更新集群中的一堆软件。所以如果pycharm每次推送时都在集群中运行bashrc,并且出于某种原因它处理了它的输出,那么这就是一个问题。我删除了remote/cluster中我的bashrc中的所有打印行。
gcuhipw94#
请注意不要将[[ $- == *i* ]] || return添加到.bashrc,除非它是您的本地计算机。与这里描述的类似,scp抱怨了.bashrc的输出(它在登录时给出了一个问候)。有趣的是,FreeBSD或OpenBSD SSH从来没有抱怨过同样的问题。但是Ubuntu.好吧,我记得在过去的一些版本的SSH有类似的问题,所以我确实添加了[[ $- == *i* ]] || return到我的.bashrc,正如Killan Obermeier上面建议的那样。我这样做了,下一次无法登录,也无法本地或远程登录。在收到正确的密码后,提示将重置为登录LOL。这是一个仁慈的这不是一些远程机器。
[[ $- == *i* ]] || return
4条答案
按热度按时间rqqzpn5f1#
我得到这个错误是因为我的
.bashrc
文件打印到stdout..bashrc
是在PyCharm通过SFTP连接到远程解释器的机器时获得的。它必须是静默的,否则它会干扰SFTP协议。解决方案是在不交互运行时提前退出
.bashrc
,方法是将这行放在顶部:字符串
进一步阅读:
vlurs2pr2#
经过一点检查,我找到了这个问题的最终解决方案。
实际上,这不是关于
pycharm
或intellij
的问题。sync
文件到远程服务器的基本工作原理是使用sftp
从远程服务器上传文件和下载文件。也许你已经注意到,它的作品时,使用
root
用户同步。对于不同的人,他们使用不同的
sftp
实用程序,如putty
,Linux client
,Windows cmd
,Power shell
,xshell
等。通过在
xshell
中使用命令sftp root@host
或sftp user@host
(其中用户是您登录的用户)。xshell
将要求您在对话框中输入密码。这两个命令都可以工作。
但是当你通过相同的命令使用
windows cmd
时,这里的消息会跳出来。字符串
你会看到,
pycharm
只是转发这个信息。下面是关于长消息sftp gives an error: "Received message too long" and what is the reason?的相关问题
因此,我们需要将
sftp server
配置更改为non-interactive
模式。通过编辑
/etc/ssh/sshd_config
,需要你有root permission
或要求服务器管理员做.型
然后通过
systemctl restart sshd
重新启动sshd
服务rfbsl7qr3#
我遇到了类似的问题。我每次登录时都在pip更新集群中的一堆软件。所以如果pycharm每次推送时都在集群中运行bashrc,并且出于某种原因它处理了它的输出,那么这就是一个问题。我删除了remote/cluster中我的bashrc中的所有打印行。
gcuhipw94#
请注意不要将
[[ $- == *i* ]] || return
添加到.bashrc
,除非它是您的本地计算机。与这里描述的类似,scp抱怨了.bashrc的输出(它在登录时给出了一个问候)。有趣的是,FreeBSD或OpenBSD SSH从来没有抱怨过同样的问题。但是Ubuntu.
好吧,我记得在过去的一些版本的SSH有类似的问题,所以我确实添加了
[[ $- == *i* ]] || return
到我的.bashrc
,正如Killan Obermeier上面建议的那样。我这样做了,下一次无法登录,也无法本地或远程登录。在收到正确的密码后,提示将重置为登录LOL。这是一个仁慈的这不是一些远程机器。