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))があり、正しく動作しています。ローカルまたはリモートで正常にクロックを開始できます。
原因を見つけた、私の~/.ssh/config
は不完全でした。両方が必要です:
Host *
ForwardAgent yes
ForwardX11 yes
私の間違いは、ForwardX11オプションのみを含めたことです。
投稿された解決策はどれも私にとってうまくいきませんでした。私のクライアント(デスクトップ)システムはmacOS 10.12.5(Sierra)を実行しています。 ssh
コマンドのオプションに-v
を追加したところ、
debug1: No xauth program.
これは、xauth
プログラムへの正しいパスがないことを意味します。 (このバージョンのmacOSでは、xauth
へのパスは非標準です。)解決策は、この行を/etc/ssh/ssh_config
(一部のセットアップでは/etc/ssh/config
の場合があります)または~/.ssh/config
(管理者権限がない場合)に追加することでした:
XAuthLocation /opt/X11/bin/xauth
これで警告メッセージは消えました。
ssh -X
_を実行してリモートサーバーにGUI環境を取得できるようにする以下をすべてインストールします。ウィンドウで、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
_内で、ForwardAgent
、_#
_、_ForwardX11
_の行のハッシュ_ForwardX11Trusted
_を削除し、対応する引数を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
_
_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
)
前述のように、OS X Yosemiteのxauth
は、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
現在、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ルートに関連付けられているファイルパイプの名前は正しく処理できないため、修正する必要があります。 :-)
含む
〜/ .ssh/configのXAuthLocation/opt/local/bin/xauth
私のmacOSでは、Sierra 10.12.6がうまくいきました。回答7)からの小さな変更。
〜/ .Xauthority(宛先マシン)をルートフォルダーから削除し、ssh -X 192.168.123.1を再度実行したところ、ikが機能しました。
私の場合、それは転送されなかったMagic cookieを含む.Xauthorityの問題でした、 http://askubuntu.com/questions/571116/ のFabbyが推奨します2014-11-14にこの行を.bashrcまたは。 suを呼び出すときにユーザー間でxauthキーの転送を許可するプロファイル:
export $(dbus-launch)
以前にも追加しました:
export XAUTHORITY=~/.Xauthority
リモートがssh -X̍@で呼び出されたことを確認するには、それを見つけます。
私の場合、.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リストを確認してください...のマジッククッキーを反映している場合。
私はこれをコメントとして追加しますが、十分な担当者がいません。 sorin のソリューションにもう1行追加すると、うまくいきました。
クライアントマシンで、vim ~/.ssh/config
を使用してssh設定ファイルを編集します
次に、これらの行を追加します。
Host *
ForwardAgent yes
ForwardX11 yes
XAuthLocation /opt/X11/bin/xauth
xauth
の場所を再確認するには、次のコマンドを使用します:
which xauth
これは、CygwinのインストールをあるPCから別のPCに移動した後に起こりました。問題はホスト名の変更であるように思われました:マジックCookieは新しいPCのホスト名に対応しなくなりました。
ランニング
touch ~/.Xauthority
xauth add :0 . `mcookie`
ローカルのCygwinインストールで問題が修正されました-xauth list
が新しいPCの正しいホスト名に関連付けられた魔法のcookieをリストし、警告が表示されなくなりました。
私の目標は、macOSクライアントからLinuxホストに静かなsshベースのコマンドラインログインを取得することでした。例えば。バナーやメッセージを見たくありませんでした。証明書ベースのログインをセットアップするだけで、エイリアスをに入力して、ホストマシンでプロンプトを表示できます。それを達成するために、私は次のことをしました:
Debian 10 LinuxでHost私が触れた(たとえば作成された)~/.hushlogin
ただし、macOS Catalinassh clientでは、次のメッセージが表示されました。
xauthデータなし; X11転送に偽の認証データを使用します。
xauth
バイナリの場所を確認した後、macOSクライアントでXAuthLocation /opt/X11/bin/xauth
に/etc/ssh/sshd_config
を追加しましたが、使用すると機能しませんこのコマンド:
ssh -Y user@debian10
最終的な分析では @ ssanchの答えdidは私のために働きます。しかし、その解決策を見つける前に、一部の人に役立つ可能性のある回避策を見つけました。
ssh -Yy user@Host
小文字の-y
フラグをsshコマンドラインに追加すると、そのログ出力がstderrではなくsyslogに送信され、必要なクワイエットログインも可能になります。