Завдяки переадресації SSH X11 (`ssh -X`) отримайте" Не вдається відкрити дисплей ", намагаючись запустити програми X


22

Я можу увійти в систему, щоб перервати використання

ssh -X Hostip

але коли я запускаю команду xclock, вона дає мені цю помилку

Error: Can't open display: localhost:11.0

Я перевіряю свою відображувану вартість за допомогою

echo $DISPLAY

і результат є

localhost:11.0

І X11 переадресація встановлена ​​на ТАК у файлі sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Якась порада, чого мені тут не вистачає?


3
Ви пробували -Yзамість -X?
Flup

2
Також переконайтеся, що ви розумієте наслідки використання -Yзамість цього -X. Ви також можете подивитися xhost.
CVn

1
Для RedHat / CentOS 7 (принаймні) вам потрібен пакет xorg-x11-xauth, відповідно до моєї відповіді тут: unix.stackexchange.com/questions/138936/…
Майк S

Відповіді:


18

Використовуйте -Y. Зі довідкової сторінки на ssh:

-Y Дозволяє довірену переадресацію X11. Довірені переадресації X11 не підлягають контролю розширення X11 SECURITY.

Якщо у вас все ще виникають проблеми, ви можете спробувати налаштувати $DISPLAYIP-адресу локальної коробки :

$ export DISPLAY='<ip_address>:11.0'

Це може спрацювати, щоб встановити його як

$ export DISPLAY='127.0.0.1:11.0'

Люди , здається, ця проблема зазвичай , коли ssh'ing з Mac OS X . Ви також можете встановити

X11UseLocalhost no

і в цьому випадку.


1
Використовуючи XQuartz, я не зміг використати прапор -Y. "З’єднання X11 відхилено через неправильну аутентифікацію."
Ерік

5
навіть після спроб інших ваших пропозицій я не можу відкрити дисплей.
Ерік

2
Ні один із них не працював для мене. Мені потрібно було встановити підтримку XWindow на моєму сервері Centos 7 (мінімально) з: yum groupinstall "X Window System" -y
Марк Едінгтон

@MarkEdington це тому, що RedHat / CentOS вимагають пакет xorg-x11-xauth, відповідно до моєї відповіді тут: unix.stackexchange.com/questions/138936/…
Майк S

6

це працювало для мене:

Зміна

X11UseLocalhost yes

до

X11UseLocalhost no

Дякую, Дон. що працювало і для мене. Я дав тобі заяву. Я вважаю, що проблема втручання у стандартну програму полягала в тому, що для конкретної машини ввімкнено xhost.
Л. Д. Джеймс

6
на гостях? господар? який файл конфігурації? THX, щоб завершити свою відповідь
Філіп Гачуд

Я змусив його працювати, скинувши налаштування на /etc/ssh/sshd_config.
llinfeng

6

Подяка /unix//a/12772/61349 за їх діагностичні вказівки.

Переконайтесь, що клієнт ssh вимагає переадресацію X11 із прапорцем -v

ssh example.com -X -v

І шукайте конкретні повідомлення:

debug1: Requesting X11 forwarding with authentication spoofing.

Ще однією ознакою проблеми розмови є відсутність DISPLAYвстановленої для вас змінної середовища. Якщо його порожнє / невідоме, щось не так. Принаймні відповідно до тієї ж публікації , яку було зафіксовано вище , ці змінні встановлюються для вас автоматично.


Я використовував SSH Control Master для моїх ssh-з'єднань так:

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

Моє попереднє ssh-з'єднання не вимагало X11Firwarding, тому параметри майбутнього sshвиклику не використовувалися. Тож для мене,

ssh -Xпросто взагалі ігнорували

Якщо ви не бачите "Запит на переадресацію X11", але ви бачите, що муксер повторно використовує сеанси;

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

Тоді вам потрібно вийти з поточного ControlMaster для цього з'єднання та підключитися знову до прапора -X / -Y.

Щоб зупинити ваш ControlMaster

ssh -O check <hostname>

Master running (pid=2758)

(Це вийде з усіх активних з'єднань за допомогою ControlMaster)

ssh -O exit <hostname>

Exit request sent.

3

При спробі переслати на XQuartz на macOS, я вирішив проблему, запустивши sshкоманду ( ssh -Yу моєму випадку) з терміналу XQuartz (відкрився правою кнопкою миші на піктограмі XQuartz у доці та натисканням Прикладних програм> Термінал).


це працювало для мене
дл

3

Що для мене виправлено, це просто встановити xauth, колись це зробило як шарм!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.