を使用してサーバーにログインできます
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
私がここで欠けているものはありますか?
使用する -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
この場合も同様です。
診断の説明については 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.
これは私のために働きました:
変化する
X11UseLocalhost yes
に
X11UseLocalhost no
私にとってこれを修正したのは、単にxauthをインストールすることです。一度実行すると、魅力的に機能しました。
MacOSでXQuartzに転送しようとすると、ssh
コマンド(ssh -Y
(私の場合)XQuartzターミナルから(ドックのXQuartzアイコンを右クリックして[アプリケーション]> [ターミナル]をクリックして開きます)。