2

У меня есть ноутбук и сервер. В той же локальной сети я могу ssh с пересылкой X11 на сервер через:

ssh -Y -C username@internal.ip

Когда я выполняю все, что открывает окно x11, все работает. Например, xterm и chromium-browser.

На моем маршрутизаторе у меня есть порт 22, перенаправленный на мой сервер. Таким образом, когда я нахожусь вне моей сети, я могу успешно ssh на свой сервер через

ssh username@external.ip

Проблема в том, когда я хочу X11 fowarding. Когда я добавляю флаги "-Y -C", я все равно могу войти. Однако окна не пересылаются, так как я получаю сообщения об ошибках, таких как: - (chromium-browser: 21079): Gtk-WARNING **: не могу открыть дисплей: - xterm Xt error: не могу открыть дисплей: xterm: DISPLAY не установлен

Клянусь, раньше это работало, но по какой-то причине это не так. Единственное изменение, о котором я могу думать недавно, - это обновление программного обеспечения на сервере (с 10.04 по 10.04 с обновлениями). Кроме того, на моем ноутбуке я недавно обновился до Ubuntu 11.04.

Я думаю, что это должно быть недавней проблемой, поскольку я поймал бы это задолго до этого. Кроме того, я не помню эту ошибку каждый раз, когда я открывал окна x11. Я думаю, что это связано с моим ноутбуком, так как, когда я пробую похожие вещи на других серверах (вне сети, в школе), окна x11 также не открываются (а они открывались раньше).

Я погуглил, но не смог ничего оштрафовать. Пересылка X11 должна быть включена, поскольку она работает внутри. Внешне это не так. Пожалуйста, дайте мне знать ваши предложения по отладке или исправлению.

2 ответа2

1

Вы не указали фактический флаг для включения пересылки X11, то есть -X. (-Y только переключает его в "доверенный" режим.)

Я предполагаю, что у вас включена пересылка X11 в ~/.ssh/config или /etc/ssh/ssh_config на нескольких машинах, поэтому она работала без -X .

0

@ grawity (извините, слишком долго за комментарии)

$ ssh -X -v -v -v usename@external.ip
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /home/username/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_request_forwards: requesting forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 2616
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 3
$ xterm
xterm Xt error: Can't open display: 
xterm:  DISPLAY is not set

$ exit
logout
debug1: mux_client_request_session: master session id: 3
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Received exit status from master 1
Shared connection to external.ip closed.

Я ПРОСТО РЕАЛИЗОВАЛ ЧТО-ТО. Я использую SSHFS с некоторыми из этих серверов, которые я пытаюсь (монтирую некоторые каталоги). У меня также есть следующее в ~/.ssh/config:

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

сохранить один сеанс (и продолжать его использовать). Возможно, пересылка X11 не была настроена в моем начальном сеансе из SSHFS.

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