
Ich bin per SSH mit einem Remotecomputer verbunden und die Xforwarding-Funktion funktioniert einwandfrei, aber sobald ich „sudo su -“ oder „sudo su user2“ eingebe, wird nichts mehr per Xforwarding weitergeleitet und ich erhalte den folgenden Fehler:
X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
Irgendwelche Ideen?
Danke
Antwort1
- Aktivieren Sie die X-11-Weiterleitung in Ihrem Client
- Melden Sie sich als Ihr normaler Benutzer an
echo $DISPLAY
um die zugehörige Anzeige zu erhaltenxauth list
, suchen Sie die Anzeigenummer, die mit der in Nr. 3 gefundenen übereinstimmt, und kopieren Sie sie- Sudo zum Rooten
xauth add <paste in what you copied from #4>
- Jetzt können Sie Befehle als Root ausführen und die X11-Weiterleitungsverbindung sehen
Antwort2
Bevor Sie beginnen sudo
, tun Sie Folgendes:
$ xauth extract /tmp/xauthstuff $DISPLAY
Nachdem Sie sudo
Folgendes getan haben:
# xauth merge /tmp/xauthstuff
Geht das für dich?
PS: Denken Sie daran, rm /tmp/xauthstuff
danach
Antwort3
Ich habe keinen Zugriff auf das Root-Konto, um die oben genannten Schritte auszuführen, daher hier ein Workaround, den ich verwendet habe.
Melden Sie sich zunächst wie gewohnt per SSH bei Ihrem Konto an und testen Sie, ob alles funktioniert.
ssh -Y <you>@<your_server>
Normalerweise starte ich einfach ein XTerm, um sicherzustellen, dass ich eine Verbindung habe. Wenn alles gut ist, kopiere die .XAuthority-Datei aus dem <you>
Home-Verzeichnis und lege sie in ein öffentliches Verzeichnis.
cp ~/.Xauthority /tmp/tempXAuth
Stellen Sie sicher, dass Sie für diese Datei im öffentlichen Verzeichnis den Befehl chmod 777 ausführen, damit das Sudo-Konto sie im späteren Schritt verwenden kann.
chmod 777 /tmp/tempXAuth
jetzt sudo an den Benutzer, als den Sie arbeiten müssen
sudo su - <other_user>
Sobald Sie fertig sind <other_user>
, sichern Sie die vorhandene .Xauthority und kopieren Sie dann die „gute“ Datei herüber.
cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority
Sie sollten in der Lage sein, alle X-Programme auszuführen und sie bei Ihrer aktuellen XServer-Sitzung zu authentifizieren.
Antwort4
Geben Sie als der Benutzer, mit dem Sie sich normalerweise anmelden, Folgendes ein:
cd
sudo cp .Xauthority /root/
Anschließend können Sie mit folgendem Befehl zum Root-Zugriff wechseln:
sudo su