Xforwardingではユーザーの切り替えはできません

Xforwardingではユーザーの切り替えはできません

リモート コンピューターに 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

  1. クライアントでX-11転送を有効にする
  2. 通常のユーザーとしてログイン
  3. echo $DISPLAY関連付けられたディスプレイを取得する
  4. xauth list3番で見つけたものに対応する表示番号を見つけてコピーします
  5. ルートにsudoするxauth add <paste in what you copied from #4>
  6. これで、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

関連情報