【发布时间】:2017-06-13 00:30:07
【问题描述】:
问题
我正在尝试通过 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 变量的解决方案,我确信有更好的方法来实现这!
任何帮助将不胜感激。
附:制作别名:
alias ssh='ssh -X'
在我的 .bashrc 中不会强制 PyCharm 启用 X11 转发。
【问题讨论】:
-
发现pycharm不使用系统ssh。相反,它使用JSch,这是一个纯java 的ssh 实现。 JSch 支持 x11 转发,但默认情况下未启用。解决问题的一种方法是将与 pycharm 捆绑在一起的 jsch.jar 替换为具有不同默认值的自定义版本。
-
感谢@OliverWeissbarth 的评论!如果您愿意在实际答案中提供更多详细信息和分步解决方案,我很乐意将其标记为已批准!
-
他们在这里有一个未解决的问题:youtrack.jetbrains.com/issue/PY-13869 看起来目前没有官方解决方案:(
-
也许您应该尝试使用此处描述的外部 ssh 工具 jetbrains.com/help/pycharm/…。您可以在那里指定其他 ssh 参数
-
实际上,我已经非常感谢您的解决方案。谢谢你。我最初在复制它时遇到了问题,因为我设置 matplotlib 支持
matplotlib.use('Agg'),但是当我评论那条线时,它就像一个魅力。将此评论留作提醒其他有相同问题的人。
标签: ssh pycharm x11-forwarding