リモートコンピューターにSSHで接続し、xforwardingは正常に機能しています...しかし、「Sudosu-」または「Sudouuser2」を実行するとすぐに、Xforwardが実行されなくなり、エラーが発生します。
X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
何か案は?
ありがとう
echo $DISPLAY
関連する表示を取得しますxauth list
、#3で見つけたものに対応する表示番号を見つけてコピーしますxauth add <paste in what you copied from #4>
Sudo
する前に、次のようにします。
$ xauth extract /tmp/xauthstuff $DISPLAY
Sudo
した後、次のようにします。
# xauth merge /tmp/xauthstuff
これはあなたのために働きますか?
PSは後でrm /tmp/xauthstuff
することを忘れないでください
上記のいずれかを実行するための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セッションで認証できるようにする必要があります。
あなたの前に Sudo su user2
$ XAUTHORITYの権限を確認します:echo $XAUTHORITY
ls -l $XAUTHORITY
ユーザーを切り替えた後も同じ$ XAUTHORITYを参照しているが、ファイルへのアクセス許可を失った場合、これによりX11転送が中断されます。
私の場合、簡単な解決策は、ユーザーを切り替える前に$ XAUTHORITYファイルのファイル権限を調整することでした。
信頼できないユーザーが$ XAUTHORITYファイルにアクセスできる場合、これはセキュリティの問題になる可能性があることに注意してください。
通常ログインするユーザーとして、次のように入力します。
cd
Sudo cp .Xauthority /root/
次に、以下を使用してrootに切り替えることができます。
Sudo su