1

Я использую Cygwin/X для подключения по ssh к Ubuntu-серверу, расположенному на VirtualBox, на котором установлены различные компоненты X:

ssh -X user@IPADDRESS

Оказавшись внутри, я могу запустить gnome-terminal и терминал всплывает. Оказавшись там, я могу открыть новые вкладки, запустить geany (текстовый редактор, такой как GEdit) и так далее, и все это работает, окна открываются, и все в порядке.

Затем, в какой-то момент, что-то происходит, и я не могу открыть какие-либо новые приложения, использующие X. Существующие приложения работают нормально, но что-то новое будет жаловаться, что не может открыть дисплей. например:

user@SERVER:/mnt/smb$ geany
Geany: cannot open display

Я думаю, что это начинает происходить после того, как я использовал sudo для выполнения такой команды, как:

sudo apt-get install XXXX

После начала проблемы переменная окружения DISPLAY остается такой же, как и раньше.

Единственная другая информация, которая может быть полезна, - то, что, когда я впервые вхожу в машину, сразу же после аутентификации появляется следующее:

Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.

Есть идеи?

2 ответа2

0

Судо стирает ваш дисплей.

Документация sudo рекомендует использовать "pam_env" в середине сеанса для восстановления среды входа в систему - проблема в том, что это невозможно. Только при первоначальном входе в систему pam_env доступны такие вещи, как REMOTE_HOST и DISPLAY, чтобы он мог включать правильные значения в вашу среду. Позже, повторный вызов pam_env просто гарантирует, что эти значения будут ZEROed (даже если ваш файл sudoers сконфигурирован, чтобы НЕ повторно инициализировать среду). Т.е. из-за неверной информации о безопасности, представленной в документах sudo, DISPLAY, вероятно, будет очищен, несмотря ни на что.

Чтобы это исправить, вы должны отменить настройку неверной конфигурации вашего дистрибутива (который следовал совету sudo), а также настроить sudo, чтобы не портить вашу среду. Даже до сих пор. Если в вашей среде есть функции, на которые вы полагались (у меня есть возможность определить, нахожусь ли я на Cygwin или нет - используйте одни и те же оболочки инициализации на обеих) - они будут стерты. Таким образом, любая информация о безопасности и конфигурации, хранящаяся в функциях, потому что это более удобно или полезно, будет удалена с помощью sudo.

Короче. sudo нужно исправить или заменить.

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

0

Некоторые идеи:

  1. Попробуйте вызвать ssh как ssh -Y , что означает, что вы доверяете машине, к которой обращаетесь по ssh. Это может повлиять только на удаление первого предупреждения, но стоит попробовать.
  2. Убедитесь, что брандмауэр не блокирует связь
  3. Убедитесь, что на удаленном сервере не включено расширение XC-SECURITY (SECURITY отображается в выходных данных xdpyinfo).
  4. Используйте ssh -vvv для получения дополнительной информации.

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