После запуска приложения X11 (XQuartz 2.3.6, xorg-server 1.4.2-apple56) на моем Mac (OS X 10.6.8), открытия терминала в X11 и его запуска xhost +
, я перехожу на свою виртуальную машину ssh -Y
Ubuntu 10.04 (работающую на VMware). Fusion). Когда я бегу gedit .bashrc
(например), я получаю:
(gedit:9510): Gtk-WARNING **: cannot open display:
set | grep DISPLAY
ничего не возвращает
Но если я ssh -Y
в мою машину Ubuntu 11.04, gedit .bashrc
работает. echo $DISPLAY
возвращает "localhost: 10.0".
Я пытался, export DISPLAY=localhost:10.0
пока sshed в мою виртуальную машину, а затем работает gedit .bashrc
, но я получаю:
(gedit:9625): Gtk-WARNING **: cannot open display: localhost:10.0
Что может отличаться в конфигурации двух разных машин Ubuntu, что объясняет, почему один работает, а другой нет?
Обновление: как предложено Zoredache в комментарии ниже, я бежал sudo apt-get install xbase-clients
, но у меня все еще остается та же проблема.
X11Forwarding
на Ubuntu, и что выxbase-clients
установили, и что вы можете запускать Xapps на Mac на терминале , с которого вы устанавливаете ssh-соединение. (Убедитесь , что$DISPLAY
установлен на терминале запуска SSH с .Ответы:
Проверьте sshd_config сервера (обычно
/etc/ssh/sshd_config
) и убедитесь, что опция X11Forwarding включена со строкойЕсли X11Forwarding не указан, по умолчанию на компьютерах Debian, которые я могу проверить, по умолчанию нет.
источник
От xhost +: Как исправить ошибку «Cannot Open Display» при запуске графического интерфейса на удаленном сервере :
источник
xhost +
очень небезопасна и не должна использоваться! Как упоминал Стефан Рогин, злоумышленник может затем с хоста подключиться к вашей XSession, прочитать все, что вы печатаете, или даже изменить экран, который вы видите.export Display=IP:0.0
сделал это для меняУ меня была эта проблема при входе в Ubuntu VM из Mac OS X, а также - по некоторым причинам он не похож на «localhost» в отображаемой переменной. Так что установите IP вручную, как предлагает harrymc:
Тогда программы X11 должны быть в порядке. Не похоже, что нужно указывать ОС, что localhost и 127.0.0.1 эквивалентны, но это работает, по крайней мере.
источник
У меня была эта проблема с моим сервером CentOS KVM, мне не хватало программы "xauth".
источник
Если у вас возникла эта проблема через некоторое время при запуске с
-X
arg. или простоForwardX11
в / etc / ssh / ssh_config, затем запустите$ ssh username@hostname -Y
, чтобы включить надежную пересылку X11 , не знаю точную причину, но я предполагаю, что-X
срок действия некоторых функций истекает через некоторое время, возможно, для повышения безопасности.Вот что я нашел в Интернете:
источники:
источник
Только что протестировано на моем Mac, другие системы могут быть в порядке :
-X
параметромисточник
При запуске UXTERM или XTERM просто выдайте
Переменная будет там. Затем просто установите его и экспортируйте.
источник
Я должен был добавить
/etc/ssh/sshd_config
следующее:Скорее тогда установив это "да". Странно, если по умолчанию «НЕТ». Пользователи, использующие замазку с XMing под Windows. Я использую прямой SSH над Fedora. Иногда это начало давать нам
Перезагрузка сервера обычно исправляет это, но это глупо. Сделал вышеописанное, перезапустил службу
sshd
на сервере и предустановил новые соединения, снова заработал нормально.источник
Я также имел эту проблему с Solaris 10 и обнаружил, что слушатель не был настроен.
источник
На CentOS 6.5 я внезапно потерял удаленный доступ к X-программам после работы с / etc / hosts. Тот же признак пустой переменной $ DISPLAY (не помогает установка / экспорт вручную).
Запись 127.0.0.1, указывающая на фактическое имя хоста, необходима; на самом деле, порядок, похоже, тоже актуален (поставь последний и он не сработает ...)
После исправления этой проблемы xeyes, xclock и другие тестовые игрушки X снова работают, поэтому мой нужный virt-manager также вернулся в строй.
источник
Я только что нашел хороший сбой в моей настройке, который предотвращал переадресацию x: мой брандмауэр блокировал все соединения от localhost, таким образом препятствуя достижению туннеля
источник
Если вы используете Konsole, просто переключитесь на другой эмулятор терминала, такой как Xfce Terminal, и попробуйте снова с помощью root.
источник
открыть терминал $ ssh username @ hostname -X
export DISPLAY = "127.0.0.1:10.0" все должно работать.
источник
DISPLAY='localhost:10.0'
не работает.Эта настройка работает для меня:
Локальный (64-битный Cygwin в Windows 10)
DISPLAY=:0
Сервер (Amazon EC2 RHEL 7.6)
DISPLAY=:10.0
Эти настройки были найдены путем нажатия «X меню приложений на: 0» на панели задач и выбора «Системные инструменты»> «Терминал».
источник
После большого разочарования я обнаружил, что запись для имени хоста сервера в его файле / etc / host была неправильной.
источник