web-dev-qa-db-ja.com

MacOS Sierraで「ssh -X」を実行できない

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
29
Dodie

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を使用する他のツール)に問題を引き起こします。

47
Christian

MacOS SierraがX11の設定をリセットし、xAuthプログラムが無効になることに気付きました。 macOS SierraでxAuthを再度有効にするには:

  1. X11/xQuartzを再インストールして、macOS Sierraが行った変更をおそらくリセットします。これで十分かもしれませんが、以下の変更も行いました。
  2. ターミナルをロードする
  3. Sudo <text editor of your choice> /etc/ssh/sshd_config
  4. そのファイルで、次の行のコメントを解除し、これらの値に設定します。
    • X11Forwarding yes
    • X11DisplayOffset 10
    • [2017年10月7日に更新] X11/XQuartzを再インストールするとき、何よりも、次のものを追加する必要があります:XAuthLocation <path_to_your_xauth>これはおそらく、再インストールが機能した理由を説明する黄金のステップでした。
  5. 端末からsshを再起動します。実行してこれを行いました:
    • Sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    • Sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
26
Matt Widjaja

Mac OS X Sierraにアップグレードした後、-Xオプションを使用したX11転送で同じ問題が発生しています。

Sshオプション-Y(信頼できるX11転送)をご覧ください。 ssh -Y <Host>を使用している間はうまくいきます。

11
ebner

1行XAuthLocation /usr/X11/bin/xauth/etc/ssh/ssh_configに追加するだけで、MacOS Sierraを実行しているMacで動作し、Linuxホストにsshして、X Windowsプログラムをリモートで実行し、MacのXQuartzで表示できます。

5
Peter Edwards

これに対する私の解決策は次のとおりでした。

(1)ssh -Xを試す前にxquartzを起動します。 xquartzオプションでは、「ログイン時に開く」を有効にしただけで、常にバックグラウンドで実行されています。

(2)xquartz [設定]メニューに移動し、[セキュリティ]ウィンドウで、[クライアントからの接続を許可する]ボックスをクリックします。

これらのことを行った後、すべてが正常に動作します。

5
cslage

古い質問ですが、最近、10.12.6を実行しているMacで同じ問題に遭遇しました。 DISPLAY変数は端末に設定されておらず、ssh -Xは機能しません。これは私が問題を解決したことです:

  1. Homebrewを使用してXQuartzを再インストールします:brew cask install xquartz(オプション--forcedが必要な場合があります)

  2. XQuartzランチャーをシステムのデフォルトに追加します(この Redditの投稿)の解決策に従ってくださいlaunchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist

  3. システムを再起動します。

これらを実行した後、私のDISPLAY変数は適切に設定されます:

$ echo $DISPLAY /private/tmp/com.Apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0

また、sshでのX11転送も機能します。

4
user2032994

MacbookをEl CapitanからSierraにアップグレードしました。 Xquartzを再インストールするだけで、ssh -X [linux server]を使用して、私にとってはうまくいきました。

2
peter

Quartzがインストールされている場合、必要なのは、/ etc/ssh/ssh_configファイルの「Host *」の下に「X11Trusted yes」という行を追加することだけです。

1
Jim Ramsey

最近のSierraにはXQuartzがインストールされた状態で出荷されないことを認識するためだけに解決策を探して丸1日過ごしました https://support.Apple.com/en-gb/HT201341 。インストール時に( https://www.xquartz.org/ )すべて動作します。

1
user8552682

xQuartzを再起動するとうまくいきました。

0
mike