MacOS Sierraにアップグレードしたばかりですが、もう「ターミナル」で「ssh -X」コマンドを実行できないようです。以前はxtermウィンドウを起動していましたが、今ではもう-Xオプションを付けなかったようです。更新する直前に、問題なく動作していました。 OS X YosemiteからMacOS Sierraに移行する以外、セットアップでは何も変更しませんでした。
編集:
提案されているように、これはデバッグログでこの問題を引き起こしている可能性があることを発見したものです。
debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
XQuartzを再インストールする必要はありませんでしたが、Matt Widjajaの答えに基づいて、改良を行いました。
Sudo vi /etc/ssh/ssh_config
(これはsshd_configではなくsshクライアントの構成です)Host *
エントリの下に追加(またはホストごとに適切な場所に追加)XAuthLocation /usr/X11/bin/xauth
(Sierraでxauthの場所が変更されました)ServerAliveInterval 60
(ssh接続を維持するために60秒ごとにサーバーにpingを送信します)ForwardX11Timeout 596h
(デフォルトの20分を超える信頼できないX11接続を許可します)もちろん、既存のsshクライアント接続を除き、sshを再起動する必要はありません。
-Y(信頼されたX11)は信頼されないよりも望ましいようです。信頼済みに切り替えると、ForwardX11Timeout行はおそらく削除されます。
ServerAliveInterval行もオプションの設定です。
~/.ssh/config
(ユーザーの構成ファイル)でこれらの変更を行うことも可能かもしれませんが、権限は正しくなければなりません。
編集:ForwardX11とForwardX11Trustedを削除しました。それらは必要ではなく、ForwardX11は安全性が低く、git(またはsshを使用する他のツール)に問題を引き起こします。
MacOS SierraがX11の設定をリセットし、xAuthプログラムが無効になることに気付きました。 macOS SierraでxAuthを再度有効にするには:
Sudo <text editor of your choice> /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
XAuthLocation <path_to_your_xauth>
これはおそらく、再インストールが機能した理由を説明する黄金のステップでした。Sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
Sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Mac OS X Sierraにアップグレードした後、-X
オプションを使用したX11転送で同じ問題が発生しています。
Sshオプション-Y
(信頼できるX11転送)をご覧ください。 ssh -Y <Host>
を使用している間はうまくいきます。
1行XAuthLocation /usr/X11/bin/xauth
を/etc/ssh/ssh_config
に追加するだけで、MacOS Sierraを実行しているMacで動作し、Linuxホストにsshして、X Windowsプログラムをリモートで実行し、MacのXQuartzで表示できます。
これに対する私の解決策は次のとおりでした。
(1)ssh -X
を試す前にxquartz
を起動します。 xquartzオプションでは、「ログイン時に開く」を有効にしただけで、常にバックグラウンドで実行されています。
(2)xquartz
[設定]メニューに移動し、[セキュリティ]ウィンドウで、[クライアントからの接続を許可する]ボックスをクリックします。
これらのことを行った後、すべてが正常に動作します。
古い質問ですが、最近、10.12.6を実行しているMacで同じ問題に遭遇しました。 DISPLAY
変数は端末に設定されておらず、ssh -X
は機能しません。これは私が問題を解決したことです:
Homebrewを使用してXQuartzを再インストールします:brew cask install xquartz
(オプション--forced
が必要な場合があります)
XQuartzランチャーをシステムのデフォルトに追加します(この Redditの投稿)の解決策に従ってください :launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
システムを再起動します。
これらを実行した後、私のDISPLAY
変数は適切に設定されます:
$ echo $DISPLAY /private/tmp/com.Apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0
また、sshでのX11転送も機能します。
MacbookをEl CapitanからSierraにアップグレードしました。 Xquartzを再インストールするだけで、ssh -X [linux server]を使用して、私にとってはうまくいきました。
Quartzがインストールされている場合、必要なのは、/ etc/ssh/ssh_configファイルの「Host *」の下に「X11Trusted yes」という行を追加することだけです。
最近のSierraにはXQuartzがインストールされた状態で出荷されないことを認識するためだけに解決策を探して丸1日過ごしました https://support.Apple.com/en-gb/HT201341 。インストール時に( https://www.xquartz.org/ )すべて動作します。
xQuartzを再起動するとうまくいきました。