SSH X11フォワーディング( `ssh -X`)を使用すると、Xアプリケーションを実行しようとして` Ca n't open display`を取得できます


22

を使用してサーバーにログインできます

ssh -X Hostip

しかし、コマンドxclockを実行すると、このエラーが表示されます

Error: Can't open display: localhost:11.0

を使用して表示値を確認します

echo $DISPLAY

結果は

localhost:11.0

X11転送はsshd_configファイルでYESに設定されます

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

ここで不足していることはありますか?


3
-Y代わりに試しました-Xか?
フラップ

2
また、の-Y代わりにを使用することの意味を理解してください-X。をご覧になることもできますxhost
CVn

1
RedHatの/ CentOSの7(少なくとも)のために、あなたはここに私の答えに従って、のxorg-X11-xauthのパッケージを必要とする:unix.stackexchange.com/questions/138936/...
マイク・S

回答:


18

を使用し-Yます。sshのmanページから:

-Y信頼できるX11転送を有効にします。信頼できるX11フォワーディングは、X11 SECURITY拡張制御の対象ではありません。

それでも問題が解決しない場合は、ローカルボックスのIPに設定$DISPLAYしててください

$ export DISPLAY='<ip_address>:11.0'

次のように設定すると機能する場合があります

$ export DISPLAY='127.0.0.1:11.0'

Mac OS Xからsshするとき、人々はこの問題をよく持っているようです。設定することもできます

X11UseLocalhost no

この場合も同様です。


1
XQuartzを使用して、-Yフラグを使用できませんでした。「間違った認証のためX11接続が拒否されました。」
エリック14

5
他の提案を試しても、ディスプレイを開くことができません。
エリック14

2
これらのどちらも私にとってはうまくいきませんでした。Centos 7サーバー(最小)にXWindowサポートをインストールする必要がありました。yumgroupinstall "X Window System" -y
Mark Edington

RedHatの/ CentOSのは、ここに私の答えに従って、のxorg-x11の-xauthのパッケージを必要とするため@MarkEdingtonこれは、次のとおりです。unix.stackexchange.com/questions/138936/...
マイク・S

6

これは私のために働いた:

変化する

X11UseLocalhost yes

X11UseLocalhost no

ありがとう、ドン。それも私のために働いた。賛成票を差し上げました。デフォルトを妨げる問題は、特定のマシンでxhostが有効になっていることだと思います。
LDジェームズ

6
ゲストに?ホスト?どの構成ファイルですか?あなたの答えを完了するthx
フィリップガショー

設定をにドロップして動作するようにしました/etc/ssh/sshd_config
llinfeng

6

診断手順については、https://unix.stackexchange.com/a/12772/61349参照してください。

sshクライアントが-vフラグを使用してX11転送を要求していることを確認してください

ssh example.com -X -v

そして、特定のメッセージを探します:

debug1: Requesting X11 forwarding with authentication spoofing.

もう1つの問題点は、DISPLAY環境変数が適切に設定されていないことです。空白/未設定の場合、何か問題があります。少なくとも上記と同じ投稿によると、これらの変数は自動的に設定されます。


SSHコントロールマスターを使用して、ssh接続を次のように行いました。

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

私の以前のssh接続はX11Firwardingを要求しなかったため、将来のssh呼び出しのオプションは使用されませんでした。だから私にとっては、

ssh -Xは完全に無視されていました

「Requesting X11 Forwarding」が表示されないが、セッションを再利用するマルチプレクサが表示される場合。

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

次に、その接続の現在のControlMasterを終了し、-X / -Yフラグで再接続する必要があります。

ControlMasterを停止するには

ssh -O check <hostname>

Master running (pid=2758)

(これにより、ControlMasterを使用してアクティブな接続がすべて終了します)

ssh -O exit <hostname>

Exit request sent.

3

macOSでXQuartzに転送しようとしたときに、XQuartzターミナル(ドックのXQuartzアイコンを右クリックし、[アプリケーション]> [ターミナル]をクリックして開きます)からsshコマンドを実行して問題を修正しましたssh -Y


これは私のために働いた
DLI

3

私にとってこれを修正したのは、xauthをインストールするだけで、一度完了したら魅力的に機能しました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.