「警告:信頼できないX11転送のセットアップに失敗しました:xauthキーデータが生成されません」とは、-Xでsshする場合の意味ですか?


134

私が使用している場合ssh -X、私のUbuntu(11.04)ボックスに接続するために、私のMac(OS X 10.6.7を実行している)の上に、私は次のような警告が出ます:

警告:信頼できないX11転送のセットアップに失敗しました:xauthキーデータは生成されません警告:xauthデータはありません。X11転送に偽の認証データを使用します。

この警告を消すためにできることはありますか?そうでない場合、安全に無視できますか?

X11転送は正常に機能しているように見えますが、次のメッセージが表示されます。

Xlib:ディスプレイ「localhost:10.0」に拡張子「RANDR」がありません。

それは警告に関連していますか?(私は推測していない。もしそうでなければ、それについて新しい質問を提出する。)


1
xauthプログラムはubuntuサーバーにインストールされていますか?
スラブマン

sudo apt-get install xauth「xauthはすでに最新のバージョンです」
ダリルスピッツァー

ubuntuサーバーにログインすると、「which xauth」の出力はどうなりますか?
スラブマン

実際、この説明を読むべきだと思います:mail-archive.com/cygwin-xfree@cygwin.com/msg17927.html…この警告は無視しても構いません
slubman

2
時折、これは〜/ .Xauthorityファイルの問題によって引き起こされる可能性があります。削除すると、次にログインしようとしたときに再作成されます。
マイケル

回答:


145

-Xフラグの代わりに-Yフラグを使用したくない理由は何ですか?

簡単に言えば、-Xと-Yの違いは、-Yが信頼できるX11転送を有効にすることです。


4
いいえ、質問を書いたとき、-Yフラグを知らなかっただけです。私はそれが解決策であることが判明したと信じています。答えが質問にならないように変更してください(-Yと-Cの違いを簡単に説明していただければ幸いです)。それを受け入れます。
ダリルスピッツァー

-Xの代わりに-Yを使用したくない場合はありますか?
オンドリ

-Yがサポートされていない非常に古いシステムの@Rooster
Petr

トラブルシューティングのヒント:「ssh -vv ...」を実行し、xauth行とエラーメッセージを探します。表示されるxauth行を直接実行してみてください。私の場合、「xauth -f / tmp / ssh ... list:0」(信頼できない)ではなく、「xauth list:0」(信頼できる)のようなものにする必要がありました。どの-Yが修正され、リモートホスト/ etc / ssh / ssh_config(または〜/ .ssh / config)の「ForwardX11Trusted yes」も修正されました。
カーティスヤロップ

このソリューションはCygwin / Xでも機能しました。
linux64kb

25

2015年にここに来る場合:他のすべてが適切に設定されていても、Mac OS X 10.10 Yosemiteでssh -XXQuartzバージョン<= 2.7.7 を使用して実行している場合、これが発生する可能性があります。根本的な原因は、X11ディスプレイソケットがxauth検索パスの外側に書き込まれることです:XQuartzトラッカーの問題#2068

編集:修正されたXQuartzが新しいホームページxquartz.orgでリリースされており、そこから最新バージョン(現在2.7.9)をインストールすると、この問題を回避できます。


1
ありがとうございました!私はなかった全くわから XQuartz Iということだけ XQuartzページの一番上からダウンロードしたが、実際には、最新のリリースではありませんが。
クレイグ

brew install xquartz現在、古い2.7.7バージョンがインストールされていることに注意してください。
マーティンクリーバー

brew install Caskroom/cask/xquartzHomeBrewで最新のXQuartzを取得する必要があります
ニック

またはより短いbrew cask install xquartz
フランクリンゆう

17

あなたが使用していても同じメッセージが表示された場合-Yxauthプログラムはサーバー上で欠落している可能性があります。Debianのようなシステムでは、xauthパッケージが必要です。RedHatのようなシステムでは、xorg-x11-xauthパッケージが必要です。


15

このコンテキストで「信頼できない」とは、接続を信頼しないことを意味します。SSHは、追加のセキュリティ対策を使用して、X11転送の安全性を高めます。「信頼」とは、リモートホスト上でXauthデータにアクセスできず、それを使用して、たとえばキーストロークを監視できることを完全に確信していることを意味します。

この用語は実際、長年にわたって私を混乱させました。「信頼できる」接続の方が安全だと思いました。しかし、実際には、接続が信頼できる状況で使用することになっているオプションであり、余分なセキュリティ対策が邪魔されることなく、何かを実行したい場合です。「信頼されていない」とは、信頼されていないリモートホストに対処することを(ある程度)より安全にするものです。

「信頼できない」接続は、X11セキュリティ拡張機能を有効にし、(できれば)不要な他の拡張機能を無効にすることで、ブラックハットができることを制限しようとします。これがおそらく、RandRが-Xで無効になっている理由です。リモートホストからXディスプレイを回転できるようにする必要がありますか?

また、「信頼できない」X11フォワーディングは、一定の時間が経過するとオフになり、誤ってオンにしないようにすることに注意することも重要です。その後、ウィンドウを開く新しい試みは失敗します。何が起こっているのかを理解するのに十分なドキュメントを読む前に、それは何度か私に噛みつきました。


9

私はこの振る舞いを示すセットアップを持っていないので、これは暗闇の中でのショットです:

この警告を与えるホストに対してを設定ForwardX11Trustedすると"no"、警告が抑制される場合があります。これはまたはのいずれ~/.ssh/config/etc/ssh/ssh_configに配置できHost <hostname>、上記の行に含めることにより、特定のホストに固有のオプションを作成できます。<hostname>コンポーネントは、コマンドライン(ない解決されたホスト名)に入力したものと一致し、それはワイルドカードを含めることができます。


ssh -Y信頼できるX11転送を行うために使用できますが、信頼できないX11転送をどのように修正できますか?
パベルシメルダ

Redhatでも同じエラーが発生しましたが、/etc/ssh/ssh_configクライアント側で設定ファイルを編集することで解決できるようになりました。ありがとう
ギャンガダーJannu

7

注意してください(セキュリティの欠陥につながる不完全な回答を読むことにうんざりします)

1 / ssh -Yを使用すると、ここで偽のxauth情報を取得することになりますが、これは不適切です!

2 / ssh -Xは、XQuartzが一度有効化されるとxauthを使用するため、動作するはずです。唯一の問題は、sshが/ usr / X11R6 / binでxauthを探し、XQuartzを使用するmacosでは/ opt / X11 / binにあることです。

安全な解決:

1 / 設定の[ セキュリティ ]タブで最初のオプションを有効にする(Cmd-、)

2 /追加

XAuthLocation /opt/X11/bin/xauth

$ HOME / .ssh / config

3 / ssh -X you_server安全な方法で動作する


6

インストールxauthが正常に機能しない場合、特に迷惑なケースの1つは.Xauthorityファイルの破損です。この特定のケースでは、一部のXクライアントは動作しますが、新しいディスプレイで失敗する傾向のある他のXクライアントは動作しません。.Xauthorityファイルを削除して再作成すると、その問題を解決できます。


6

サーバー側の問題を排除

まず、サーバー側の問題を除外する必要があります。ssh -X他のホストから正常に実行できますか?ssh -Y動作ssh -Xしないのに動作しますか?どちらの場合でも、ssh + X11がサーバー上で正しくセットアップされていると想定し、次のセクションに進みます。

それを確認する立場にない場合(X11を実行しているラップトップが1つしかない場合など)、ssh偽のセッションを使用してサーバーからそれ自体にアクセスできます。

  1. export DISPLAY=:44#(Bourne shell)または
    setenv DISPLAY :44#(csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 #このテスト専用の偽のクッキー
  3. ssh -X localhost env |grep DISPLAY

期待される結果:ssh-to-selfセッションのリモートエンドにDISPLAY変数が設定されている必要があります。結果が得られない場合、サーバーの設定が間違っている可能性があります(たとえば、X11ライブラリやxauthコマンドが欠落している、またはsshd設定がX11アクセスを拒否するように設定されている可能性があります)

Macの場合:Xquartzが最新であることを確認します

あたりとしてウィルAngleyの答え

ssh -vv -X出力を調べる

引用したエラーメッセージは、多くの原因が考えられる症状です。でもう一度試してください。これにより、X11トンネルのセットアップが失敗した理由に関する追加の手がかりが得られます。ssh -X -vv remotehost

次のメッセージが表示されますか?

debug1:xauthプログラムはありません。
もしそうなら、

  1. クライアントシステムのどこにxauthコマンドがあるかに注意してください。
    どのxauth
  2. 〜/ .ssh / configの最後に次の行を追加します(また、今後もその行を維持することを思い出させるコメントを追加します)。
    ホスト *
        XAuthLocation / opt / X11 / bin / xauth
    
    手順1の調査結果に従って、このパスを調整します— Jan-Willem Arnoldの功績

3

すでに上で説明したように、次のことがうまくいきました。

〜/ .ssh / configを編集して行を追加します

Host *
    XAuthLocation /opt/X11/bin/xauth

のssh -Xホスト名の作品(XQuartz 2.7.11、MacOSの10.4モハーベ)


0

私はすでに最新のXQuartz 2.7.11をインストールしていましたが、それ以来OSも数回更新していると思います。XQuartz 2.7.11を再インストールしましたが、現在は正常に動作しています。


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