本文介绍了如何在 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 转发?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-24 22:38