web-dev-qa-db-ja.com

SSH X11転送( `ssh -X`)で、Xアプリケーションを実行しようとする「ディスプレイを開けません」を取得します

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

ssh -X Hostip

しかし、コマンドxclockを実行すると、このエラーが発生します

Error: Can't open display: localhost:11.0

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

echo $DISPLAY

結果は

localhost:11.0

Sshd_configファイルでX11転送がYESに設定されている

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

私がここで欠けているものはありますか?

24
OmiPenguin

使用する -Y。 sshのmanページから:

-Y信頼できるX11転送を有効にします。信頼できるX11転送は、X11 SECURITY拡張コントロールの対象ではありません。

それでも問題が解決しない場合は、 setting $DISPLAYをローカルボックスのIPに

$ export DISPLAY='<ip_address>:11.0'

それを次のように設定するとうまくいくかもしれません

$ export DISPLAY='127.0.0.1:11.0'

Mac OS Xからsshを実行する の場合、一般的にこの問題が発生するようです。設定することもできます

X11UseLocalhost no

この場合も同様です。

18
Kyle Kelley

診断の説明については 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」は表示されないが、muxerがセッションを再利用していることは確認できます。

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.
6
ThorSummoner

これは私のために働きました:

変化する

X11UseLocalhost yes

X11UseLocalhost no
6
don

私にとってこれを修正したのは、単にxauthをインストールすることです。一度実行すると、魅力的に機能しました。

5
Mostafa

MacOSでXQuartzに転送しようとすると、sshコマンド(ssh -Y(私の場合)XQuartzターミナルから(ドックのXQuartzアイコンを右クリックして[アプリケーション]> [ターミナル]をクリックして開きます)。

3
Harry Cutts