问题
我正在尝试通过PyCharm SSH终端启用X11转发,该终端可以通过
"Tools -> Start SSH session..."不幸的是,似乎没有办法像在shell中那样指定标志来启用X11转发:
ssh -X user@remotehost你知道实现这一目标的一些聪明的方法吗?
电流脏溶液
我发现的唯一脏问题是使用X11转发打开外部ssh连接,而不是手动更新环境变量DISPLAY。
例如,我可以在外部ssh会话上运行:
vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0并且设置在我的PyCharm终端上:
export DISPLAY=localhost:10.0或者更新运行/调试配置中的显示变量,如果我想从GUI运行程序的话。
但是,--我真的不喜欢这个解决方案--使用外部ssh终端并手动更新DISPLAY变量--我确信有更好的方法来实现这一点!
任何帮助都将不胜感激。
附注:化名为:
alias ssh='ssh -X'在我的.bashrc中,不强制PyCharm启用X11转发。
发布于 2017-11-06 21:26:40
因此,我能够修补jsch,并测试出这一点,而且效果很好。
使用X11转发
您需要执行以下操作才能在X11中使用PyCharm转发:
jsch-0.1.54.jar备份到pycharm的lib文件夹中,并将其替换为修补版本。使用远程环境启动Pycharm,并确保删除在运行/调试配置中可能设置的DISPLAY环境变量的任何实例。编译
下面是在安装了Maven的Mac或Linux系统上需要做的事情。
wget http://sourceforge.net/projects/jsch/files/jsch/0.1.54/jsch-0.1.54.zip/download
unzip download
cd jsch-0.1.54
sed -e 's|x11_forwarding=false|x11_forwarding=true|g' -e 's|xforwading=false|xforwading=true|g' -i src/main/java/com/jcraft/jsch/*.java
sed -e 's|<version>0.1.53</version>|<version>0.1.54</version>|g' -i pom.xml
mvn clean package这将在jsch-0.1.54.jar文件夹中创建target。

发布于 2020-05-07 09:46:15
更新2020:我找到了一个非常简单的解决方案。这可能是由于更新的PyCharm版本(2020.1)。
X11Forwarding:在/etc/ssh/sshd_config集中X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no~/.ssh/config集中ForwardX11 yesInclude system environment variables。这解决了将DISPLAY变量设置为系统变量的问题。
编辑:如下图所示,它工作正常。例如,我使用了PyTorch实现的DeepLab并可视化了来自PASCAL的示例图像:

发布于 2021-04-30 07:14:07
X11转发在2021.1实现。适用于所有基于IntelliJ的IDE。如果它仍然不起作用,请考虑在youtrack.jetbrains.com创建一个新的问题。
顺便说一句,一条建议关于修补jsch的内容不会适用于任何比2019.1更新的jsch。
https://stackoverflow.com/questions/41892039
复制相似问题