ssh -X "Xt error: не могу открыть дисплей::0.0"

Я пытаюсь открыть xterm на моем удаленном сервере (Ubuntu Server 10.04) с помощью ssh:

ssh -X name@machine xterm

но возвращается ошибка:

xterm Xt error: Can't open display: :0.0`

Я погуглил и попробовал все, что нашел. Все еще получаю эту ошибку. Переменная DISPLAY должна быть установлена ​​автоматически, верно?

Часть sshd_config:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

Любой совет?

7 ответов

Если ssh может установить соединение, он установит DISPLAY к правильному значению. Так как у вас есть X11DisplayOffset при значении 10 (значение по умолчанию) ssh будет использовать первый доступный дисплей, начиная с 10. Если вы видите значение, которое меньше 10¹, то что-то мешает нормальной переадресации X11, установленной ssh, по крайней мере, путем переопределения DISPLAY, Значение :0 (или же :0.0 (часть после точки не имеет значения) указывает на первый дисплей, который был запущен на машине, который в типичных случаях является активным сеансом (или графическим приглашением для входа в систему) на консоли машины.

Наиболее вероятное объяснение поведения, которое вы наблюдаете, заключается в том, что один из ваших файлов конфигурации оболочки устанавливает DISPLAY, Самый очевидный виновник ~/.bashrc (который из-за причуды bash выполняется всякий раз, когда родитель bash rshd или же sshd, даже если оболочка не является интерактивной). Другой файл, который определяет переменные среды /etc/environment, Если это так, решение очевидно: не устанавливайте DISPLAY там. (Есть очень мало случаев, когда вам нужно установить DISPLAY вручную.)

Есть и другие экзотические объяснения. Это может произойти, если вы изменили свою оболочку входа в систему на screen (милая идея в теории, но не практичная) и у вас есть файл инициализации оболочки, который принудительно устанавливает DISPLAY внутренний экран (не очень хорошая идея). Это также может произойти, если вы настроили сервер на прием переменных среды, отправленных клиентом (AcceptEnv директива в sshd_config), клиент отправляет DISPLAY и X-соединение не может быть установлено. Или это может произойти, если вы установите переменную среды на сервере через command директива в ~/.ssh/authorized_keys, Или же xterm может быть сценарием.

Whatever Или независимо от значения X11DisplayOffset находится в конфигурации сервера, но он почти никогда не меняется по умолчанию.

Ваша команда должна работать, или, по крайней мере, она работает для меня. Попробуйте это вместо этого:

ssh -Y user@machine xterm

Изменить (1):

Попробуй это:

ssh -X user@machine env

Это должно показать всю окружающую среду. Там должны быть различные вещи по SSH, а также DISPLAY. ДИСПЛЕЙ должен быть 10.0.

Вы также можете попробовать это:

ssh -X user@machine DISPLAY=10.0 xterm

Так же как X11Forwarding yesМне тоже нужно было добавить

X11UseLocalhost no

в /etc/ssh/sshd_config

как описано здесь.

Контроль доступа X, вероятно, в пути.

Бежать xhost + (из пакета x11-xserver-utils) полностью отключить контроль доступа.

Я обнаружил, что xauth не был установлен.

Также убедитесь, что у вас установлен X11 на стороне клиента. Я получил эту проблему, когда я обновил свой Mac до OS X Mountain Lion. Mountain Lion удаляет X11, поэтому вам придется установить его снова через проект X Quartz с открытым исходным кодом. http://xquartz.macosforge.org/landing/

Вы должны сначала открыть соединение, а после того, как установлено, открыть xterm.

Другие вопросы по тегам