首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在X11 SSH会话中启用PyCharm转发?

如何在X11 SSH会话中启用PyCharm转发?
EN

Stack Overflow用户
提问于 2017-01-27 10:41:03
回答 5查看 12.9K关注 0票数 33

问题

我正在尝试通过PyCharm SSH终端启用X11转发,该终端可以通过

代码语言:javascript
运行
复制
"Tools -> Start SSH session..."

不幸的是,似乎没有办法像在shell中那样指定标志来启用X11转发:

代码语言:javascript
运行
复制
ssh -X user@remotehost

你知道实现这一目标的一些聪明的方法吗?

电流脏溶液

我发现的唯一脏问题是使用X11转发打开外部ssh连接,而不是手动更新环境变量DISPLAY

例如,我可以在外部ssh会话上运行:

代码语言:javascript
运行
复制
vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0

并且设置在我的PyCharm终端上:

代码语言:javascript
运行
复制
export DISPLAY=localhost:10.0

或者更新运行/调试配置中的显示变量,如果我想从GUI运行程序的话。

但是,--我真的不喜欢这个解决方案--使用外部ssh终端并手动更新DISPLAY变量--我确信有更好的方法来实现这一点!

任何帮助都将不胜感激。

附注:化名为:

代码语言:javascript
运行
复制
alias ssh='ssh -X'

在我的.bashrc中,不强制PyCharm启用X11转发。

EN

回答 5

Stack Overflow用户

发布于 2017-11-06 21:26:40

因此,我能够修补jsch,并测试出这一点,而且效果很好。

使用X11转发

您需要执行以下操作才能在X11中使用PyCharm转发:

  • 如果您还没有安装X,请安装它。在Windows上,这可能是VcXsrv项目,在Mac上可能是XQuartz项目。
  • 下载或编译jsch包。请参阅下面的编译说明。
  • jsch-0.1.54.jar备份到pycharm的lib文件夹中,并将其替换为修补版本。使用远程环境启动Pycharm,并确保删除在运行/调试配置中可能设置的DISPLAY环境变量的任何实例。

编译

下面是在安装了Maven的Mac或Linux系统上需要做的事情。

代码语言:javascript
运行
复制
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

票数 7
EN

Stack Overflow用户

发布于 2020-05-07 09:46:15

更新2020:我找到了一个非常简单的解决方案。这可能是由于更新的PyCharm版本(2020.1)。

  1. 确保在服务器上启用X11Forwarding:在/etc/ssh/sshd_config集中
代码语言:javascript
运行
复制
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
  1. 在客户端(MacOS为我):在~/.ssh/config集中
代码语言:javascript
运行
复制
ForwardX11 yes
  1. 在PyCharm中取消选择Include system environment variables。这解决了将DISPLAY变量设置为系统变量的问题。

编辑:如下图所示,它工作正常。例如,我使用了PyTorch实现的DeepLab并可视化了来自PASCAL的示例图像:

票数 6
EN

Stack Overflow用户

发布于 2021-04-30 07:14:07

X11转发在2021.1实现。适用于所有基于IntelliJ的IDE。如果它仍然不起作用,请考虑在youtrack.jetbrains.com创建一个新的问题。

顺便说一句,一条建议关于修补jsch的内容不会适用于任何比2019.1更新的jsch

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41892039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档