How to enable X11 forwarding in PyCharm SSH session?(如何在 PyCharm SSH 会话中启用 X11 转发?)

本文介绍了如何在 PyCharm SSH 会话中启用 X11 转发?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题

我正在尝试通过 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 转发?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!