
リモート コンピューターに ssh で接続し、xforwarding は正常に動作しています... しかし、「sudo su -」または「sudo su user2」を実行すると、何も Xforward されなくなり、次のエラーが表示されます。
X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
何か案は?
ありがとう
答え1
- クライアントでX-11転送を有効にする
- 通常のユーザーとしてログイン
echo $DISPLAY
関連付けられたディスプレイを取得するxauth list
3番で見つけたものに対応する表示番号を見つけてコピーします- ルートにsudoする
xauth add <paste in what you copied from #4>
- これで、rootとしてコマンドを実行し、X11転送接続を使用できるようになります。
答え2
する前にsudo
、次のことを行ってください。
$ xauth extract /tmp/xauthstuff $DISPLAY
その後sudo
、次の操作を行ってください。
# xauth merge /tmp/xauthstuff
これで大丈夫ですか?
PSrm /tmp/xauthstuff
後で忘れないように
答え3
上記のいずれかを実行するためのルート アカウントへのアクセス権がないため、私が使用した回避策を以下に示します。
まず、通常どおりにアカウントに ssh し、すべてが機能していることをテストします。
ssh -Y <you>@<your_server>
通常、接続を確認するために XTerm を起動します。問題がなければ、ホーム ディレクトリにある .XAuthority ファイルをコピーして<you>
、パブリック ディレクトリに配置します。
cp ~/.Xauthority /tmp/tempXAuth
後の手順で sudo アカウントが使用できるように、パブリック ディレクトリ内のそのファイルに chmod 777 を実行してください。
chmod 777 /tmp/tempXAuth
作業を行う必要があるユーザーにsudoを実行します
sudo su - <other_user>
完了したら<other_user>
、既存の .Xauthority をバックアップし、「適切な」ものをコピーします。
cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority
任意の X プログラムを実行し、現在の XServer セッションで認証できるようになります。
答え4
通常ログインするユーザーとして次のように入力します:
cd
sudo cp .Xauthority /root/
次に、次のコマンドを使用してルートに切り替えることができます。
sudo su