web-dev-qa-db-ja.com

PyCharm SSHセッションでX11転送を有効にする方法は?

質問

私はX11転送を有効にしようとしていますPyCharmSSHターミナルを介して実行できます

"Tools -> Start SSH session..."

残念ながら、X11転送を有効にするためにシェルで行うようにフラグを指定する方法はないようです。

ssh -X user@remotehost

これを達成するための賢い方法を知っていますか?


現在の汚れたソリューション

私が見つけた唯一のダーティーハックは、X11転送で外部ssh接続を開き、手動で環境変数を更新することです[〜#〜] display [〜#〜]

たとえば、外部sshセッションで実行できます。

vincenzo@remotehost:$ echo $DISPLAY
localhost:10.0

そして私のPyCharmターミナルで設定するより:

export DISPLAY=localhost:10.0

または、必要に応じて、Run/Debug Configuration[〜#〜] display [〜#〜]変数を更新しますGUIからプログラムを実行します。

ただし、私は本当に好きではありません外部ssh端末を使用して手動で[〜#〜] display [〜#〜]変数を更新するこのソリューションでは、これを達成するためのより良い方法があることを確認してください!

どんな助けでも大歓迎です。


追伸次のようなエイリアスを作成します。

alias ssh='ssh -X'

私の。bashrcでは、PyCharmがX11転送を有効にすることは強制されません。

18
Gengiolo

だから私はjschにパッチを当ててこれをテストすることができ、それはうまくいきました。

X11転送の使用

PyCharmでX11転送を使用するには、以下を実行する必要があります。
-Xサーバーがない場合はインストールします。 WindowsではこれはVcXsrvプロジェクト、Mac OS XではXQuartzプロジェクトです。
- ダウンロード またはjschパッケージをコンパイルします。以下のコンパイル手順を参照してください。
-pycharmのlibフォルダにあるjsch-0.1.54.jarをバックアップし、パッチを適用したバージョンに置き換えます。リモート環境で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

これにより、targetフォルダにjsch-0.1.54.jarが作成されます。

X11 Enabled

4
Tarun Lalwani

並行して、 MobaXTerm を開き、X11転送チェックボックスが有効になっている間に接続します。これで、PyCharmはMobaXTerm X11サーバーを介してディスプレイを転送します。 PyCharmがこの「シンプルな」機能を追加するまで、これが続きます。

また、PyCharm実行構成でDISPLAY環境変数を次のように設定します:DISPLAY = localhost:10.0(右側は、サーバー側でコマンドecho $ DISPLAYを使用して取得する必要があります)

0
Hesham Eraqi