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

问题描述 投票:19回答:3

问题

我正在尝试通过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。制作一个别名,例如:

alias ssh='ssh -X'

在我的[[.bashrc

中,不会强制PyCharm启用X11转发。
我正在尝试通过PyCharm SSH终端启用X11转发的问题,可以通过“工具->启动SSH会话...”来执行,不幸的是,似乎无法指定...]]

所以我能够修补jsch并对其进行测试,效果很好。

使用X11转发

您需要执行以下操作才能在PyCharm中使用X11转发:-如果还没有X服务器,请安装它。在Windows上,这可能是VcXsrv项目,在Mac OS X上,这可能是XQuartz项目。-Download或编译jsch软件包。请参阅下面的编译说明。-在pycharm的jsch-0.1.54.jar文件夹中备份lib,并用修补的版本替换。在远程环境中启动Pycharm,并确保删除可能在运行/调试配置中设置的DISPLAY环境变量的所有实例。

编译

这是在装有Maven的Mac OS或Linux系统上需要做的。

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

X11 Enabled

并行地,打开MobaXTerm并在启用X11转发复选框时连接。现在,PyCharm将通过MobaXTerm X11服务器转发显示内容。直到PyCharm添加此“简单”功能。

此外,在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中,取消选择Include system environment variablesenter image description here
  • ssh pycharm x11-forwarding
    3个回答
    5
    投票
    所以我能够修补jsch并对其进行测试,效果很好。

    0
    投票
    并行地,打开MobaXTerm并在启用X11转发复选框时连接。现在,PyCharm将通过MobaXTerm X11服务器转发显示内容。直到PyCharm添加此“简单”功能。

    此外,在PyCharm运行配置中设置DISPLAY环境变量,如下所示:DISPLAY =本地主机:10.0(右侧应通过服务器端的命令echo $ DISPLAY获得)


    0
    投票

    2020年更新:

    我找到了一个非常简单的解决方案。可能是由于更新了PyCharm版本(2020.1)。
    © www.soinside.com 2019 - 2024. All rights reserved.