Я могу войти в удаленный компьютер Ubuntu (Kubuntu 12.04). Используя информацию из ( Как запустить программное обеспечение с графическим интерфейсом на удаленном ПК с Linux через SSH ), я попытался сделать следующее после входа в систему:
user@Kub:~$ export DISPLAY=:0
user@Kub:~$ firefox
No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0
Я ожидал такой же успех, как указано в вопрос, на который ссылаются. К сожалению, как вы видите, это не сработало для меня. Машина имеет 3 дисплея. Может ли это быть проблемой?
Есть ли простое решение? Я также прочитал ( https://unix.stackexchange.com/questions/10121/open-a-window-on-a-remote-x-display-why-cannot-open-display ), но я не понял, как использовать или применять этот совет. Это было слишком сложно. Я ценю любые относительно простые решения.
Я посмотрел на работающий процесс GUI (Кейт) с этим:
# cat /proc/2857/environ | tr \\0 \\n | grep -E '^(DISPLAY|AUTHORITY)='
DISPLAY=:0
Это еще больше смущает меня, почему это не сработало.
Используя предложение Скотта Гудгейма (ниже), я попробовал это:
Результат был:
$ No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0
Простой способ иметь возможность запускать графические программы - это запускать ssh следующим образом ... ssh -X -C user@MyIp
Затем он начнет сеанс ssh, как обычно, но затем вы можете запустить программу X следующим образом. firefox &
это запустит firefox на удаленной машине, отобразит его локально для вас и вернет вас к приглашению ssh.
Вам нужен xauth, чтобы разрешить экспорт дисплея и создать пустой файл Xauthority.
apt-get install xauth
touch ~/.Xauthority
Я на Kubuntu 12.04. Вот что сработало для меня на примере того, как запустить x11vnc удаленно.
Сначала запустите команду ps wwwwaux | grep auth
, чтобы найти файл cookie xauth. Результат будет выглядеть примерно так:
root 1592 3.6 6.2 665544 1023456 tty7 Ss+ Jul14 288:35 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-ABCDEF
Интересующая часть находится в конце этой строки: / var / run / xauth / A: 0-ABCDEF
(где ABCDEF является уникальной случайной (?) строкой
Затем вставьте полученный результат в эту команду:
sudo x11vnc -rfbport 5901 -rfbauth ~/.vnc/passwd -display :0 -shared -xauth /var/run/xauth/A\:0-ABCDEF