
Я подключаюсь по ssh к удаленному компьютеру, и xforwarding работает нормально... но как только я выполняю команду «sudo su -» или «sudo su user2», он больше ничего не перенаправляет, выдавая ошибку:
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 для получения прав root
xauth add <paste in what you copied from #4>
- Теперь вы можете выполнять команды как root и сможете увидеть соединение X11 Forwarding.
решение2
Прежде чем вы sudo
это сделаете:
$ xauth extract /tmp/xauthstuff $DISPLAY
После этого sudo
сделайте следующее:
# xauth merge /tmp/xauthstuff
Вам это подходит?
P.S. не забудьте rm /tmp/xauthstuff
потом
решение3
У меня нет доступа к учетной записи root, чтобы выполнить что-либо из вышеперечисленного, поэтому вот обходной путь, который я использовал.
Сначала подключитесь по SSH к своей учетной записи, как вы это обычно делаете, и проверьте, все ли работает.
ssh -Y <you>@<your_server>
Обычно я просто запускаю XTerm, чтобы убедиться, что у меня есть подключение. Если все хорошо, скопируйте файл .XAuthority, который находится в <you>
домашнем каталоге, и поместите его в публичный каталог.
cp ~/.Xauthority /tmp/tempXAuth
Обязательно установите права chmod 777 для этого файла в общедоступном каталоге, чтобы учетная запись sudo могла использовать его на более позднем этапе.
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/
Затем вы можете переключиться на root-доступ с помощью:
sudo su