我正在尝试通过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运行程序,请在运行/调试配置
中更新DISPLAY
但是,我真的不喜欢使用外部ssh终端并手动更新DISPLAY
变量的解决方案,我敢肯定有一种更好的方法来实现这一目标!任何帮助将不胜感激。
P.s。制作一个别名,例如:
我正在尝试通过PyCharm SSH终端启用X11转发的问题,可以通过“工具->启动SSH会话...”来执行,不幸的是,似乎无法指定...]]alias ssh='ssh -X'
在我的[[.bashrc
中,不会强制PyCharm启用X11转发。
使用X11转发
jsch-0.1.54.jar
文件夹中备份lib
,并用修补的版本替换。在远程环境中启动Pycharm,并确保删除可能在运行/调试配置中设置的DISPLAY
环境变量的所有实例。编译
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
。
此外,在PyCharm运行配置中设置DISPLAY环境变量,如下所示:DISPLAY =本地主机:10.0(右侧应通过服务器端的命令echo $ DISPLAY获得)
2020年更新:
我找到了一个非常简单的解决方案。可能是由于更新了PyCharm版本(2020.1)。X11Forwarding
:在/etc/ssh/sshd_config
中设置X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
在客户端上(对于我来说是MacOS):在
~/.ssh/config
中设置
ForwardX11 yes
此外,在PyCharm运行配置中设置DISPLAY环境变量,如下所示:DISPLAY =本地主机:10.0(右侧应通过服务器端的命令echo $ DISPLAY获得)
2020年更新:
我找到了一个非常简单的解决方案。可能是由于更新了PyCharm版本(2020.1)。