У меня есть следующие настройки: компьютер A (a.corp, 192.168.100.130, локальный компьютер) и компьютер B (b.corp, удаленный компьютер), и монитор подключен к каждой из этих машин. Когда я ssh из a.corp в b.corp как

Машина A, локальная машина, т. Е. A.corp настроена:

.ssh/config

Host *
    ForwardX11 yes
    TCPKeepAlive no
    ServerAliveInterval 15
    ServerAliveCountMax 10
    IdentityFile ~/.ssh/id_dsa.work

/etc/ssh_config (это OS-x, Darwin 12.2.0)

Host *
  SendEnv LANG LC_*
  ForwardX11 yes

MachineB, удаленный компьютер, т. Е. Настройка b.corp: (ядро Ubuntu: 3.2.0)

.ssh/config

Host * 
    ForwardX11 yes
    IdentityFile ~/.ssh/id_dsa.work

/etc/ssh/ssh_config

Host * 
    SendEnv LANG LC_*
    ForwardX11 yes

Случай 1:

(DISPLAY on a.corp is not set)
$ echo $DISPLAY

$ ssh -X b.corp

(DISPLAY on b.corp is not set either)
$ echo $DISPLAY

$ xclock
Error: Can't open display:

Случай 2: я попытался установить переменную DISPLAY как

(DISPLAY on a.corp is not set)
$ echo $DISPLAY

$ ssh -X b.corp
$ export DISPLAY=`echo $SSH_CLIENT|cut -f1 -d\ `:0.0
$ echo $DISPLAY
192.168.100.130:0.0
$ xclock

Дисплей xclock открывается, но на мониторе, подключенном к b.corp (удаленный компьютер), а не на мониторе, подключенном к a.corp (локальный компьютер). Есть ли способ заставить дисплей отображаться на мониторе локальной машины (a.corp)?

2 ответа2

2

Обычно DISPLAY должен быть установлен на localhost:10.0 на удаленной машине. Вы также должны убедиться, что /etc/ssh/ssh_config на удаленной машине имеет строку

ForwardX11 Yes

Под разделом

Host *

или же

Host a.corp

если вы хотите разрешить пересылку X11 только на этот хост.

0

Попробуйте подключиться без использования xauth:

клиент @ home: ssh сервер -Y xeyes

Если это сработает, вам нужно будет правильно настроить безопасность x11.

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