警告「xauthデータなし」を防ぐにはどうすればよいですか。X11転送に偽の認証データを使用していますか?


66

MacからLinux(Debian)へのssh接続を開始するたびに、次の警告が表示されます。

No xauth data; using fake authentication data for X11 forwarding.

これは、gitやmercurialなど、sshを使用しているツールでも発生します。

これが表示されないように、システムにローカルな変更を加えたいだけです。

注:Mac OS X(10.8.1)にX11サーバー(XQuartz 2.7.3(xorg-server 1.12.4))があり、正常に動作しています。ローカルまたはリモートで正常にクロックを開始できます。


1
sshにどのコマンドを使用していますか?
DerfK

@DerfKただssh hostname、私の前~/.ssh/configに追加しましたForwardX11 yes。それでも、これは私がそこに持ちたいものです。
ソリン

Ubuntu 16.04 LTSの使用(2017年8月)私はあきらめます。一番下の行は、それがエラーを与えても動作するということです。ssh -Y hostnameLinuxから使用し、ssh -x hostnameWindowsでOpenSSHを使用します。
–SDsolar

回答:


66

投稿された解決策のどれも私のために働いた。クライアント(デスクトップ)システムはmacOS 10.12.5(Sierra)を実行しています。コマンド-vのオプションに追加しsshましたが、

debug1: No xauth program.

つまり、xauthプログラムへの正しいパスがありません。(macOSのこのバージョンでは、パスxauthは標準では/etc/ssh/ssh_configありません。)解決策は、次の行を追加することです(/etc/ssh/configセットアップに含まれる~/.ssh/config場合があります)または(管理者権限がない場合)。

XAuthLocation /opt/X11/bin/xauth

これで警告メッセージは消えました。


10
ああ、神様。何年も私は解決策を見つけようとしてきましたが、これはうまくいきました。私が言う年!編集する代わりにファイルのHost *エントリの下にその行を追加することでこれをしたことに注意してください。このために見つけた唯一のドキュメントはにありました。~/.ssh/config/etc/ssh/ssh_configman sshd_config
デミトリ

これも私にとってはうまくいきました。現時点では、XQuartzは資金不足のために十分に維持されていないことを理解しています。そのため、このような移植の問題は、実際には予想より少ないと思います。
AlanObject

ハイシエラで; これも私のために働いたものです。
mklein9

1
シェルが PATHでxauth検出できる場合でも、この問題が発生する可能性があることに注意してください!sshクライアントはセキュリティ上の理由でPATHをサニタイズしていると思いますか?
MarcH

1
このソリューションは私にはうまくいきませんでした。Win7でCygwinを使用しています。"Host *"エントリの下、または〜/ .ssh / configのその行の前に "XAuthLocation / usr / bin / xauth"を追加しても違いはありません。
デビッドM.カー

22

原因が見つかりました、私~/.ssh/configは不完全でした、あなたは両方が必要です:

Host *
    ForwardAgent yes
    ForwardX11 yes

私の間違いは、ForwardX11オプションのみを含めたことです。


12
なぜこれが必要/関連するのか分かりません。ForwardAgentキャッシュされssh-agentたキーが複数のネストされたSSH接続を通過できるようにするために使用されます。X11とは関係ありません。一部の人によると、セキュリティ上の賢明な方法ではありません:heipei.github.io/2015/02/26/…–
underscore_d

2
これは正しく聞こえませんが、実際にX11転送をオフにするか、xauth構成を修正してセットアップすることが役立ちます。sshエージェントとは関係ありません。
eckes

この解決策はうまくいきませんでした。
デビッドM.カー

これ~/.ssh/configはmacOSクライアントまたはLinuxサーバーにありますか?これらのファイルはどちらにもありません。私は同様の持っているか/etc/ssh/sshd_config
マックスCOPLAN

12

Windows 10でUbuntu bashを実行ssh -X して、リモートサーバーでGUI環境を取得する

  • 最初

以下をすべてインストールします。WindowにインストールしXmingます。Ubuntu bashでは、を使用sudo apt installしてインストールしssh xauth xorgます。

sudo apt install ssh xauth xorg
  • 第二

ssh_configファイルが含まれているフォルダに移動します/etc/ssh。私のファイルはです。

  • 三番

ssh_config管理者として編集します(USE sudo)。内部にssh_config、ハッシュを削除する#ラインでForwardAgentForwardX11ForwardX11Trusted、およびに対応する引数を設定しますyes

# /etc/ssh/ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
  • 前方へ

ssh_config、ファイル、フロントハッシュを削除#する前にPort 22してProtocol 2、また、XAUTHファイルの場所を述べるために、ファイルの末尾に新しい行を追加し、XauthLocation /usr/bin/xauth、XAUTHファイルの独自のパスを書き覚えておいてください。

# /etc/ssh/ssh_config

#   IdentifyFile ...
    Port 22
    Protocol 2
#   Cipher 3des
#   ...
#   ...
    ...
    ...
    GSSAPIDelegateCredentials no
    XauthLocation /usr/bin/xauth
  • 5番目

これでssh_configファイルの編集が完了したので、エディターを終了するときに保存します。次に、フォルダ~または$HOMEに移動しexport DISPLAY=localhost:0.bashrcファイルに追加して保存します。

# ~/.bashrc
...
...
export DISPLAY=localhost:0
  • 最終

ほぼ完了です。bashシェルを再起動し、Xmingプログラムを開いてを使用しますssh -X yourusername@yourhost。その後、GUI環境をお楽しみください。

ssh -X yourusername@yourhost

問題はWindowsのUbuntuサブシステムにもあり、リンクは

https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776

注:リンクされたテキストには2つのタイプミスが含まれています(XauthLocaionではなくXauthLocation


問題はWindowsについてではありません。
カスペルド

MacOSではほとんど同じですが、違いはの代わりになりXming、取得する必要がXQuartzあり、ssh_configファイルは別の場所にあり/private/etc/sshます。
DestinyOne

そしてまた、最後の行をssh_config次のようになりますXAuthLocation /opt/X11/bin/xauth
DestinyOne

2
編集が必要:XauthLocaion-> XauthLocation(その編集は小さすぎて作成できません)。
echristopherson

1
インストールのほかにxmingsshxauth、とxorg(ステップ1)、私のために必要な唯一のものだったexport DISPLAY=localhost:0
町の名を冠した

11

前述のように、xauthOS X Yosemiteでは、XQuartzの$DISPLAY設定では機能しない古いバージョンに後退しているようです。

% xauth -V
1.0.9
% xauth generate $DISPLAY .
xauth: (argv):1:  bad display name "/private/tmp/com.apple.launchd(...)/org.macosforge.xquartz:0" in "add" command

1
OS X 10.11で同じ行をテストしましたが、エラーは発生しません。XQuartzの同じバージョン。
ソリン

1
@guestあなたのxauth generate $DISPLAY .コマンドは私のMac OS X High Sierra(10.13)で機能し、私の鉛を解決しましたNo xauth data; using fake authentication data for X11 forwarding.
SebMa

2

現時点ではMacOSにバグがあります。私もこれに出会いました。私の修正には、.bash_profileに以下を追加する必要がありました

dispdir=`dirname $DISPLAY`
dispfile=`basename $DISPLAY`
dispnew="$dispdir/:0"
if [ -e $DISPLAY -a "$dispfile" = "org.x:0" ]; then
  mv $DISPLAY $dispnew
fi
export DISPLAY=$dispnew

基本的に、Xルートに関連付けられているファイルパイプの名前は正しく処理できないため、修正が必要です。:-)


SourceTreeのようなGUI OS Xアプリのエラーを解決できるとは思えません。
ソリン

Macがサーバーであるため、Xを使用してemacsを実行するためにSierraで機能することを確認します。クライアントがリモートマシン上にある場合、これは例で幅広く動作するはずです
マーク・マリン


1

〜/ .Xauthority(宛先マシン)をルートフォルダーから削除し、ssh -X 192.168.123.1を再度実行したところ、ikは機能しました。


これはMac OS Sierra 10.12.4での回答であることを確認できます。 SSHサーバーで〜/ .Xauthority削除すると、うまく ~$ mv ~/.Xauthority ~/.Xauthority.bak いきます。もう一度ログインすると、新しいマジックCookieが〜/ .Xauthorityに自動的に戻されます。Bashスクリプトはまったく必要ありません。
ケネスペガサス

1

私の場合、それは、マジッククッキーを含むの.Xauthorityの問題は転送されませんでしたのFabby http://askubuntu.com/questions/571116/は bashrcにの末尾に次の行を追加して2014年11月14日に推奨していますか。suを呼び出すときにユーザー間でxauthキーの転送を許可するプロファイル:

export $(dbus-launch)

以前にも追加しました:

export XAUTHORITY=~/.Xauthority 

ssh -X with @で呼び出されたリモートがそれを見つけるようにします。

私の場合、.Xauthorityは元のユーザー/home//.Xauthorityへのシンボリックリンクです...

  cd /home/<child_user>;ln -sf /home/<parent_user>/.Xauthority .xAuthority

正しい権利:

  sudo chown <parent_user> /home/<parent_user>/.profile
  chmod a+rw /home/<parent_user>/.profile 

ですから、にアクセスできます。プロキシアカウント全体でアプリを起動し、ローカル画面にXウィンドウ結果を表示できるようになります。

ヒント:xauthリストを確認します...


0

これをコメントとして追加しますが、十分な担当者がいません。sorinのソリューションにもう1行追加するとうまくいきました。

ssh configファイルを開き、vim ~/.ssh/config 次の行を追加します:

Host *
    ForwardAgent yes
    ForwardX11 yes
    XAuthLocation /opt/X11/bin/xauth

次の方法でxauth場所を再確認できます。

which xauth

xauthの場所は各リモートマシンで異なるため、これが本当に機能するかどうかはわかりません。MacOSのように見えますが、Linuxは別の場所にあります。私はほとんど使用しないので、私はほとんど完全にForwardX11を無効にし始めました。
ソリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.