
VMWare で Ubuntu サーバーを実行しています。Ubuntu ゲストから Mac ホストに X11 を転送したいと考えています。
XQuartz 2.7.9 (xorg-server 1.17.4)
Macホストにインストールしました。
Ubuntu での SSH 転送が有効になります。
次に、iTerm で次のことを試しました。
%> echo $DISPLAY
/private/tmp/com.apple.launchd.mjxVyILVrR/org.macosforge.xquartz:0
%> ssh -X root@xxxx
# echo $DISPLAY
# gnome-terminal
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display
$DISPLAY が空で、X11 転送が機能していません。
何か案は?
答え1
走ってssh -Y root@xxxx
みるxterm
内部iTerm の代わりに XQuartz を使用します。これは機能しますか?
答え2
リモートシステムで /etc/ssh/sshd_config を開き、X11Forwarding を yes に設定します。その後、ssh サービスを再起動して再試行してください。
答え3
間違っていたら訂正してください。Mac からリモートで Ubuntu を実行しているマシンにアクセスしたいのですが、Ubuntu に 'ssh' して 'echo $DISPLAY' を実行しようとすると、空の応答が返されます。おそらく、次の解決策はあなたのケースでは機能しないかもしれませんが、あなたが試していたことが私が試したことと似ている場合は試してみてください。
すでにお分かりのように、まず DISPLAY 変数を見つける必要があります。
Macで通常のユーザーとして入力すると
echo $DISPLAY
すると、次のようなものが表示されます (これは、皆さんの手にあるケースです)。いずれにしても、皆さんのシステムでも同様のものが見られるはずです。
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
次のようなことを試してください
xeyes
これでディスプレイが機能していることがわかりました
ルートとして同じことを試したい場合(皆さん、私を攻撃しないでください。皆さんの中にはルートアクセスに強く反対している人がいることは知っています)、それでもうまくいかない場合は、ルートプロンプトで次の操作を実行します。
export DISPLAY=/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
通常のユーザー アカウントで見つかったものと同じです。次に、'/Users/normal user/.Xauthority' にある '.Xauthority' を '/var/root/' にコピーします。.Xauthority ファイルは既に存在しますが、これにより上書きされます。
cp /Users/normal user/.Xauthority /var/root/
もちろん、エクスポートは機能するかもしれませんが、上記の操作を行っても問題はありません。次に、次の操作を試してください。
echo $DISPLAY
そして、次の画面が表示されるはずです
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
通常のユーザー プロンプトから Ubuntu に 'ssh' する場合は、ルート部分を実行する必要はありませんが、私は Ubuntu システムに 'ssh' するために root を使用するため、これを頻繁に実行する必要があります。
次にUbuntuにSSH接続して
echo $DISPLAY
そして次のようなものが表示されます
localhost:10.0
転送などの他のすべての作業を実行した場合、上記は機能します。
繰り返しになりますが、Ubuntu で root を使用したい場合で、「echo $DISPLAY」を実行しても応答がない場合は、以下を試してください (root プロンプトが表示されていると仮定します)。
cp /home/user name/.Xauthority /root/.Xauthority
今すぐ試してみましょう
echo $DISPLAY
もう一度実行すると、次のような画面が表示されます。
localhost:10.0
楽しみのために試してみて
xeyes
そして、私の場合はうまくいきました。これが役に立ち、上記のような問題や、私のように頭を掻きながら髪の毛を抜こうとしながら数時間この問題に取り組んでいる誰かの問題が解決することを願っています:-))。
答え4
さまざまなオプションを試した結果、私にとってはこれが効果的でした:
私のMacの場合:
まず xQuartz を起動します。次にターミナルに移動して を実行しますexport DISPLAY=localhost:0
。
リモート Linux PC の場合:
Wayland に問題があったので、 に移動して/etc/gdm/custom.conf
、行のコメントを解除しましたWaylandEnable=false
。また、 も設定しましたexport XAUTHORITY=$HOME/.Xauthority
。そして最後に、 を設定しました。export QT_QPA_PLATFORM=xcb
これにより、一部のグラフィカル ライブラリが Python で動作するようになりました。
これを設定したら、を使用してリモート サーバーに ssh で接続できるようになりssh -Y remoteserver@IP
、うまく機能するはずです。