xauth が .Xauthority ファイルを作成しない

xauth が .Xauthority ファイルを作成しない

ヘッドレス Linux Mint 17 システムに ssh で接続しても、更新や .Xauthority ファイルの作成は行われません。

さらに、実行するとxauth次の応答が返されます:

marty@N40L ~ $ xauth
xauth:  file /home/marty/.Xauthority does not exist
Using authority file /home/marty/.Xauthority
xauth>exit
marty@N40L ~ $ xauth
xauth:  file /home/marty/.Xauthority does not exist
Using authority file /home/marty/.Xauthority
xauth>

ファイルは作成されません。

編集:

モニターに接続してローカルにログインすると、ファイルは作成されますが、エントリを追加しようとすると (SSH では実行されないため)、次のようになります。

marty@N40L ~ $ xauth list
N40L/unix:0  MIT-MAGIC-COOKIE-1  34eee3b15cdb281021502d40dfba1cf2
localhost.localdomain/unix:0  MIT-MAGIC-COOKIE-1  34eee3b15cdb281021502d40dfba1cf2
marty@N40L ~ $ ls -d .X*
-rw------- 1 marty marty 115 Sep  3 12:03 .Xauthority
marty@N40L ~ $ xauth generate $DISPLAY .
PuTTY X11 proxy: wrong authorisation protocol attemptedxauth: (argv):1:  unable to open display "localhost:10.0".

ちなみに、 を実行すると、netstat --listenポートがリッスンしていることがわかります。

tcp 0 0 localhost:6010 *:* LISTEN

ああ、もっと詳しく。サーバー上の X セッションからログアウトしたら、.Xauthority ファイルが消えてしまいました。どうやら、ファイルはローカルにログインしているときだけ存在するようです。誰か、なぜそうなるのか、またはこれを修正する方法を教えてくれませんか?

新たな展開:

システムに「test」という新しいユーザーを作成しました。その後ログインし、他のコマンドを一切使用せずに xeyes を実行しました。うまくいきました。つまり、xforward を実行できないのはユーザー「marty」だけです。test から marty に設定をコピーするにはどうすればよいでしょうか。

答え1

報告しておきますが、私も同じような問題を抱えていました。しかし私の場合は、これらのステップ:

ファイルを作成するには、次の手順に従ってください$HOME/.Xauthority

ユーザーとしてログインし、ユーザーのホーム ディレクトリにいることを確認します。

# Rename the existing .Xauthority file by running the following command
mv .Xauthority old.Xauthority 

# xauth with complain unless ~/.Xauthority exists
touch ~/.Xauthority

# only this one key is needed for X11 over SSH 
xauth generate :0 . trusted 

# generate our own key, xauth requires 128 bit hex encoding
xauth add ${HOST}:0 . $(xxd -l 16 -p /dev/urandom)

# To view a listing of the .Xauthority file, enter the following 
xauth list 

.Xauthorityそれ以降、ファイルに関する問題は発生していません。

感謝とクレジットスリニヴァサン

答え2

ルート権限で/etc/ssh/sshd_config次の行を開き、コメント化されている場合はコメントを解除します。

X11転送はい

X11ディスプレイオフセット10

X11UseLocalhost はい

-Xその後、ログアウトし、フラグを付けて再度ログインします。環境変数をssh設定または設定解除する必要はありません。DISPLAY

答え3

素晴らしいトン答え

ホーム ディレクトリが 100% いっぱいになったため、まったく同じ問題が発生したことがあります。接続時に、ssh空のディレクトリが作成され~/.Xauthority、そこにエントリを 1 つも書き込むことができませんでした (そのため、xauth list常に空の出力が生成されていました)。

したがって、常に空き領域 (例: df -h) をチェックし、xauth generateと がxauth add実際に効果があったかどうかを確認することをお勧めします ( xauth list)。

答え4

ディレクトリを移動する.sshことで、X 転送が機能するようになりました。

消去法によって、~/.ssh に「rc」というファイルがあり、次の内容が含まれていました。

echo "Wecome to $(hostname), $(whoami)"

私はこれを作成したことはなく、どこから来たのかわかりません。これを削除すると問題は解決し、、、authorized_keysおよびknown_hostsキー ファイルはすべてそのまま残ります。

関連情報