У меня есть скрипт, просто для запуска моего графического (GUI) приложения, как показано ниже.
#cat gui.sh
#!/bin/bash
./gui -display 127.0.0.1:0.0
Когда я запускаю его с локальной машины ( ./gui.sh
), он работает отлично. Но когда я пытаюсь запустить его с удаленного компьютера через SSH, я получил следующую ошибку.
[root@localhost]# ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui.sh""
No protocol specified
gdm: cannot connect to X server 192.168.3.77:0.0
[root@localhost]#
Я не знаю, какой протокол он запрашивает или я что-то упускаю? Я попробовал напрямую, запустив приложение, без скрипта [ ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui""
], но результат тот же. Я пробовал различные комбинации, как ssh -Y
, ssh -fY
и многое другое, но результат тот же!
Во-вторых, для моего приложения есть обязательное условие, что мы должны сначала перейти в каталог, где находится программа.
Любые решения?
xhost +
предоставит доступ любому, кто подключится к вашему дисплею. Я бы порекомендовалxhost +local:[hostname or ip]
Debian Jessie, добавь также:
источник
xhost +
исправил мою проблему (на стороне клиента)/tmp/xauth-1000-_0
но после запуска двух дополнительных сеансов X этот файл исчез - остался только третий. Чтобы исправить проблему для всех окон, я восстановил это с помощью:ln -s ~/.Xauthority /tmp/xauth-1000-_0
Я столкнулся с той же проблемой, которую решил, изменив переменную окружения DISPLAY:
в
источник