Как включить пересылку X11 в сеансе PyCharm SSH?

Вопрос

Я пытаюсь включить переадресацию X11 через SSH-терминал PyCharm, который можно выполнить с помощью

"Tools -> Start SSH session..."

К сожалению, кажется, что нет способа указать флаги, как я бы сделал в своей оболочке для включения X11 Forwarding:

ssh -X [email protected]

Знаете ли вы какой-то умный способ достичь этого?


Текущее грязное решение

Единственный грязный хак, который я нашел, - это открыть внешнее ssh-соединение с пересылкой X11 и вручную обновить переменную среды DISPLAY.

Например, я могу запустить мой внешний сеанс ssh:

[email protected]:$ echo $DISPLAY
localhost:10.0

И чем установить на моем терминале PyCharm:

export DISPLAY=localhost:10.0

или обновите переменную DISPLAY в конфигурации Run/Debug, если я хочу запустить программу из графического интерфейса.

Однако мне действительно не нравится это решение использования внешнего ssh-терминала и вручную обновляет переменную DISPLAY, и я уверен, что есть лучший способ достижения это!

Любая помощь будет высоко оценена.


P.s. Создание псевдонима типа:

alias ssh='ssh -X'

в моем .bashrc не заставляет PyCharm включить пересылку X11.

Ответ 1

Так что я смог исправить jsch и протестировать это, и это сработало отлично.

Использование пересылки X11

Чтобы использовать перенаправление X11 в PyCharm, вам нужно будет сделать следующее:
- Установите X-сервер, если у вас его еще нет. В Windows это может быть проект VcXsrv, в Mac OS X - проект XQuartz.
- Загрузите или скомпилируйте пакет jsch. Смотрите инструкции по компиляции ниже.
- jsch-0.1.54.jar в вашей папке pycharm lib и замените ее исправленной версией. Запустите Pycharm с удаленной средой и обязательно удалите все экземпляры переменной среды DISPLAY вы могли установить в конфигурации run/debug.

компиляция

Вот что вам нужно сделать в системе Mac OS или Linux с установленным Maven.

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

Ответ 2

Параллельно откройте MobaXTerm и подключитесь, пока включен флажок переадресации X11. Теперь PyCharm перенаправит дисплей на хост MobaXTerm X11.