Gen*_*olo 18 ssh pycharm x11-forwarding
我正在尝试通过PyCharm SSH终端启用X11转发,这可以通过执行
"Tools -> Start SSH session..."
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有办法像我在shell中那样指定标志来启用X11 Forwarding:
ssh -X user@remotehost
Run Code Online (Sandbox Code Playgroud)
你知道一些聪明的方法吗?
我发现唯一的脏黑客是用X11转发打开外部ssh连接,而不是手动更新环境变量DISPLAY.
例如,我可以在我的外部ssh会话上运行:
vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0
Run Code Online (Sandbox Code Playgroud)
而不是在我的PyCharm终端上设置:
export DISPLAY=localhost:10.0
Run Code Online (Sandbox Code Playgroud)
如果我想从GUI运行程序,请更新运行/调试配置中的DISPLAY变量.
但是,我真的不喜欢使用外部ssh终端并手动更新DISPLAY变量的解决方案,我确信有更好的方法来实现这一点!
任何帮助将非常感激.
Ps制作别名:
alias ssh='ssh -X'
Run Code Online (Sandbox Code Playgroud)
在我的.bashrc中没有强制PyCharm启用X11转发.
所以我能够修补 jsch 并对其进行测试,并且效果很好。
您需要执行以下操作才能在 PyCharm 中使用 X11 转发:
- 如果您还没有 X 服务器,请安装 X 服务器。在 Windows 上,这可能是 VcXsrv 项目,在 Mac OS X 上可能是 XQuartz 项目。
-下载或编译 jsch 包。请参阅下面的编译说明。
- 备份jsch-0.1.54.jar到 pycharm 的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
Run Code Online (Sandbox Code Playgroud)
这将jsch-0.1.54.jar在target文件夹中创建。
2020 年更新: 我找到了一个非常简单的解决方案。可能是由于更新了 PyCharm 版本 (2020.1)。
X11Forwarding在服务器上启用:/etc/ssh/sshd_config设置中X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
Run Code Online (Sandbox Code Playgroud)
~/.ssh/config设置中ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)
编辑:如下图所示,它有效。例如,我使用了 DeepLab 的 PyTorch 实现并可视化来自 PASCAL VOC 的示例图像:

| 归档时间: |
|
| 查看次数: |
4924 次 |
| 最近记录: |