3

Я пытаюсь запустить Firefox из терминала на сервере, используя операционную систему Centos. Всякий раз, когда я набираю команду:

  ssh - X hostname firefox 

Я могу заставить Firefox успешно открыться, но я не могу удаленно подключиться к серверу и открыть Firefox. Я получаю следующее сообщение об ошибке после указания экспорта DISPLAY =:0 и ввода "firefox"

No protocol specified
No protocol specified
Error: cannot open display: :0

Есть много форумов по этой проблеме в Интернете, и единственные полезные предложения, которые я попробовал:

export XAUTHORITY=/home/<user>/.Xauthority

Хотя мне нужен firefox для открытия под конкретным пользователем, он также не открывается под root.

2 ответа2

1

Обычно в доверенной сети (т. Е. Домашней сети и т.д.) Вы можете

xhost +hostname

Это включает управление хостом X11 для вашего локального дисплея. Это позволяет подключению X11 от имени хоста удаленного хоста подключаться к локальному серверу X11.

Помните, что управление хостом X11 является старым, старым механизмом, который по своей природе не является безопасным. Он предоставляет элементарные средства контроля доступа через IP-адреса или разрешение имен хостов. Вот почему вы используете ssh для подключения к удаленному хосту: он шифрует все данные и защищает соединение точка-точка.

В этом случае это не понадобится, поскольку ваша удаленная среда должна быть (разумно) настроена на разрешение доступа по IP через устройство обратной связи. Но это перечислено здесь для справки.

ssh -x remotehostname "DISPLAY=localhost:10.0 firefox"

Когда ssh подключается и вы указываете переадресацию X11 через ключ -x , на контуре обратной связи (адрес 127.0.0.1) будет сделана привязка для дисплея номер 10 (обычно это значение по умолчанию, хотя его можно изменить). Переменная окружения DISPLAY обычно используется для переадресации соединения программы X11 на другой дисплей или компьютер.

Итак, мы эффективно устанавливаем переменную окружения, которая сообщает firefox подключиться к поддельному дисплею 10.0, находящемуся на 127.0.0.1, который ssh затем туннелирует назад к вашему локальному дисплею X11.

0

Попробуйте строчные х!? Также убедитесь, что между '-' и 'x' нет пробела

ssh -x имя хоста firefox

Альтернативный вариант (более многословный метод, но может дать другое сообщение об ошибке, которое является более полезным):

originalhost> удаленный хост ssh удаленный хост> setenv DISPLAY originalhost:0

originalhost> xhost + remotehost> firefox

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .