问题描述
问题
我正在尝试通过 PyCharm SSH 终端 启用 X11 转发,可以通过
执行"工具 -> 启动 SSH 会话..."
不幸的是,似乎没有办法像我在 shell 中那样指定标志来启用 X11 转发:
ssh -X user@remotehost
您知道实现此目的的一些巧妙方法吗?
当前肮脏的解决方案
我发现的唯一肮脏的技巧是使用 X11 转发打开一个外部 ssh 连接,然后手动更新环境变量 DISPLAY.
例如,我可以在我的外部 ssh 会话上运行:
vincenzo@remotehost:$ echo $DISPLAY本地主机:10.0
然后在我的 PyCharm 终端上设置:
export DISPLAY=localhost:10.0
如果我想从 GUI 运行程序,或者更新 运行/调试配置中的 DISPLAY 变量.
但是,我真的不喜欢这种使用外部 ssh 终端并手动更新 DISPLAY 变量的解决方案,我确信有更好的方法来实现这!
任何帮助将不胜感激.
附:制作别名:
别名 ssh='ssh -X'
在我的 .bashrc 中不会强制 PyCharm 启用 X11 转发.
所以我能够修补 jsch 并对其进行测试,并且效果很好.
使用 X11 转发
您需要执行以下操作才能在 PyCharm 中使用 X11 转发:
- 如果您还没有 X 服务器,请安装 X 服务器.在 Windows 上这可能是 VcXsrv 项目,在 Mac OS X 上可能是 XQuartz 项目.
-
The Question
I'm trying to enable X11 forwarding through the PyCharm SSH Terminal which can be executed via
"Tools -> Start SSH session..."
Unfortunately, It seems there is no way of specifying the flags like I would do in my shell for enabling the X11 Forwarding:
ssh -X user@remotehost
Do you know some clever way of achieving this?
Current dirty solution
The only dirty hack I found is to open an external ssh connection with X11 forwarding and than manually update the environment variable DISPLAY.
For example I can run on my external ssh session:
vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0
And than set on my PyCharm terminal:
export DISPLAY=localhost:10.0
or update the DISPLAY variable in the Run/Debug Configuration, if I want to run the program from the GUI.
However, I really don't like this solution of using an external ssh terminal and manually update the DISPLAY variable and I'm sure there's a better way of achieving this!
Any help would be much appreciated.
P.s. Making an alias like:
alias ssh='ssh -X'
in my .bashrc doesn't force PyCharm to enable X11 forwarding.
So I was able to patch up jsch and test this out and it worked great.
Using X11 forwarding
You will need to do the following to use X11 forwarding in PyCharm:
- Install an X Server if you don't already have one. On Windows this might be the VcXsrv project, on Mac OS X the XQuartz project.
- Download or compile the jsch package. See instructions for compilation below.
- Backup jsch-0.1.54.jar
in your pycharm's lib
folder and replace it with the patched version. Start Pycharm with a remote environment and make sure to remove any instances of the DISPLAY
environment variable you might have set in the run/debug configuration.
Compilation
Here is what you need to do on a Mac OS or Linux system with Maven installed.
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
This will create jsch-0.1.54.jar
in target
folder.
这篇关于如何在 PyCharm SSH 会话中启用 X11 转发?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!