web-dev-qa-db-ja.com

Xforwardingはユーザーの切り替えを許可しません

リモートコンピューターにSSHで接続し、xforwardingは正常に機能しています...しかし、「Sudosu-」または「Sudouuser2」を実行するとすぐに、Xforwardが実行されなくなり、エラーが発生します。

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0

何か案は?

ありがとう

7
Jarvin
  1. クライアントでX-11転送を有効にする
  2. 通常のユーザーとしてログインします
  3. echo $DISPLAY関連する表示を取得します
  4. xauth list、#3で見つけたものに対応する表示番号を見つけてコピーします
  5. ルートへのSudoxauth add <paste in what you copied from #4>
  6. これで、rootとしてコマンドを実行でき、X11転送接続を確立できるようになります。
6
Vaibhav Bajpai

Sudoする前に、次のようにします。

$ xauth extract /tmp/xauthstuff $DISPLAY

Sudoした後、次のようにします。

# xauth merge /tmp/xauthstuff

これはあなたのために働きますか?

PSは後でrm /tmp/xauthstuffすることを忘れないでください

4
tzot

上記のいずれかを実行するためのrootアカウントへのアクセス権がないため、これは私が使用した回避策です。

まず、通常どおりにアカウントにSSHで接続し、すべてが機能していることをテストします。

ssh -Y <you>@<your_server>

私は通常、接続を確保するためにXTermを起動するだけです。よろしければ、<you>ホームディレクトリにある.XAuthorityファイルをコピーして、パブリックディレクトリに配置します。

cp ~/.Xauthority /tmp/tempXAuth

Sudoアカウントが後のステップで使用できるように、パブリックディレクトリ内のそのファイルでchmod777を実行してください。

chmod 777 /tmp/tempXAuth

今、あなたが仕事をする必要があるユーザーにSudo

Sudo su - <other_user>

<other_user>になったら、既存の.Xauthorityをバックアップしてから、「適切な」ものをコピーします。

cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority

xプログラムを実行して、現在のXServerセッションで認証できるようにする必要があります。

3
gannable

あなたの前に Sudo su user2 $ XAUTHORITYの権限を確認します:
echo $XAUTHORITY
ls -l $XAUTHORITY


ユーザーを切り替えた後も同じ$ XAUTHORITYを参照しているが、ファイルへのアクセス許可を失った場合、これによりX11転送が中断されます。
私の場合、簡単な解決策は、ユーザーを切り替える前に$ XAUTHORITYファイルのファイル権限を調整することでした。

信頼できないユーザーが$ XAUTHORITYファイルにアクセスできる場合、これはセキュリティの問題になる可能性があることに注意してください。

2
Tim

通常ログインするユーザーとして、次のように入力します。

cd

Sudo cp .Xauthority /root/

次に、以下を使用してrootに切り替えることができます。

Sudo su
0
user2571962