Я вошел на удаленный сервер и пытаюсь отобразить приложение x (например, firefox). но появляется сообщение об ошибке. ниже мои попытки открыть Firefox
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$ exit
logout
Connection to 143.248.146.204 closed.
Black@Black-PC ~
$ ssh -Y kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$
Я использовал -X, -Y, потому что где-то читал, что эти две опции связаны с учетными данными, относящимися к X11, и эти переключатели сделают эту работу за меня. Даже без ключей -X, -Y моя попытка не удалась.
Что означает ошибка «нет отображения»?
PS Странная вещь в том, что если я подключаюсь к удаленному серверу через PUTTY и повторяю команду 'firefox', она работает?!?! (Firefox отображается на локальном компьютере)
PS Мой локальный компьютер - Windows 7, поэтому я использую Xming в фоновом режиме, чтобы разрешить отображение X11. Что касается попытки, написанной в верхней части, команды были набраны на терминале Cygwin.
DISPLAY
переменная не установлена. поэтому я настроил его с помощьюexport DISPLAY=:0.0' and executed
xclock`, и появился xclock. Но когда я вошел в систему на удаленном сервере через ssh и попыталсяxclock
снова, он говоритError: Can't open display:
Ответы:
Убедитесь, что в вашей среде cygwin установлена переменная DISPLAY:
после соединения с SSH проверьте, знает ли эта оболочка правильную переменную DISPLAY с помощью:
источник
echo $DISPLAY
. Но все равно переменная DISPLAY на удаленном сервере не имеет значения ..Error: Can't open display: :0.0
export DISPLAY=localhost:0
Я только столкнулся с этой проблемой, соединяющейся с безголовым сервером RHEL7.
Вам необходим пакет xorg-x11-xauth, установленный на вашем хосте, чтобы переменная DISPLAY была установлена и была должным образом авторизована.
Надеюсь, я кого-то сэкономил.
источник
ssh -X
системуecho $DISPLAY
возвращается URL + порт и вызовxterm &
открытого терминала в локальном окне.Спасибо @jensd, @unxnut за помощь. на основе ваших комментариев я смог выяснить проблему.
Решение потребовало двух шагов:
в моих предыдущих попытках отсутствует одно или оба из этих двух условий.
В любом случае, для более поздних пользователей, которые видят это здесь, есть примеры, чтобы показать вам, что я пытаюсь сказать.
Случай 1
моя локальная машина не будет иметь установленную переменную DISPLAY. И тогда я сделаю ssh на удаленном сервере с ключом -X и затем попробую выполнить
xclock
.как видите, ошибка
Error: Can't open display:
отображается на удаленном сервере терминала.Вариант 2
на этот раз на локальной машине я укажу переменную DISPLAY. Но когда я ssh'ing, я не буду включать ключ -X. Результатом будет сбой:
в начале вы можете видеть, что я правильно установил переменную DISPLAY. Но даже в этом случае после ssh'ing (без ключа -X) xclock не выполняется.
* Здесь
setenv | grep DISPLAY
можно увидеть другой результат (сравните с case1). в случае 2 результат просто пуст. с другой стороны, результат case1 для этой командной строкиDISPLAY: undefined variable
... Я не уверен, как это различие вызвано, но я догадываюсь, что это связано с тем, выполнили ли вы условие 1 или 2 ,Вопрос 3
на этот раз я правильно укажу переменную DISPLAY на локальном компьютере, а также ssh на удаленный сервер с включенным ключом -X.
с этой настройкой
xclock
работает !! вот скриншот, чтобы доказать, что я не вру. xclock успешно показывается на моей локальной машине.Опять же, проверьте результат
setenv | grep DISPLAY
в этом случае. Это сейчас показываетDISPLAY=localhost:11.0
. Из того, что я знаю, это связано с MIT-MAGIC-COOKIE в файле .Xauthority, но так как я не знаю много об этом, я не буду идти дальше.Вывод: из трех приведенных выше случаев мы можем подтвердить, что для правильного отображения удаленного X Windows,
-X
необходимо правильно установить и переменную 1. DISPLAY локальной машины, и 2. переключатель ssh . Конечно, удаленный сервер должен разрешить пересылку X11.источник