Вопрос или проблема
ОБНОВЛЕНИЕ 1: Я не использую SSH. Я использую локальную машину.
ОБНОВЛЕНИЕ 2: Я перезагрузил X и заметил, что файл Xauthority, в который я экспортирую, действительно обновляется:
$ sudo systemctl restart display-manager
$ ls /run/user/1000/gdm/Xauthority*
-rwx------ 1 mona mona 96 25 янв 16:07 /run/user/1000/gdm/Xauthority
Также, после перезагрузки X, два других файла Xauthority, а именно /run/user/1000/gdm/Xauthority-c
и /run/user/1000/gdm/Xauthority-l
, исчезли, как видно ниже:
$ fd Xauthority /
/run/user/1000/gdm/Xauthority
и я могу вызвать xauth после перезагрузки:
$ xauth
Используя файл авторизации /run/user/1000/gdm/Xauthority
xauth>
Следуя “Недействительный ключ MIT-MAGIC-COOKIE-1” при попытке запустить программу удаленно я попробовал:
[9080:9072 0:2035] 02:14:50 Пн 25 янв [mona@goku:pts/0 +1] ~/research/code/vision/integration
$ export DISPLAY=desktop:0
18838/31772MB(vision)
и затем:
$ xhost +local:
xhost: невозможно открыть дисплей "desktop:0"
как я могу решить эту проблему?
$ lsb_release -a
Версия LSB: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
Идентификатор дистрибьютора: Ubuntu
Описание: Ubuntu 20.04.1 LTS
Версия: 20.04
Имя кодовой версии: focal
Еще один подобный пример:
$ xclock
Ошибка: Невозможно открыть дисплей: desktop:0
Больше деталей:
$ xclock
Ошибка: Невозможно открыть дисплей: desktop:0
27296/31772MB
[3266:3258 3:2008] 02:54:16 Пн 25 янв [mona@goku:pts/0 +1] ~
$ export DISPLAY=":0.0"
26016/31772MB
[3266:3258 3:2009] 02:57:24 Пн 25 янв [mona@goku:pts/0 +1] ~
$ xclock
Недействительный ключ MIT-MAGIC-COOKIE-1Ошибка: Невозможно открыть дисплей: :0.0
$ export DISPLAY=":0"
26238/31772MB
[3266:3258 3:2011] 02:57:40 Пн 25 янв [mona@goku:pts/0 +1] ~
$ xclock
Недействительный ключ MIT-MAGIC-COOKIE-1Ошибка: Невозможно открыть дисплей: :0
$ xhost +mona
Недействительный ключ MIT-MAGIC-COOKIE-1 Ошибка: невозможно открыть дисплей ":0"
$ firefox
Недействительный ключ MIT-MAGIC-COOKIE-1 Невозможно инициализировать сервер: Не удалось подключиться: Подключение отклонено
Ошибка: невозможно открыть дисплей: :0
$ xclock
Недействительный ключ MIT-MAGIC-COOKIE-1Ошибка: Невозможно открыть дисплей: :0
25694/31772MB
[3266:3258 3:2026] 03:04:35 Пн 25 янв [mona@goku:pts/0 +1] ~
$ export DISPLAY=desktop:0
25694/31772MB
[3266:3258 3:2027] 03:04:49 Пн 25 янв [mona@goku:pts/0 +1] ~
$ xclock
Ошибка: Невозможно открыть дисплей: desktop:0
Также у меня есть странные символы в файле Xauthority:
$ xrandr | nc termbin.com 9999
Недействительный ключ MIT-MAGIC-COOKIE-1 Невозможно открыть дисплей :0
21618/31772MB
[9136:3258 0:2002] 03:49:16 Пн 25 янв [mona@goku:pts/2 +1] ~
$ fd Xauthority /
/run/user/1000/gdm/Xauthority
/run/user/1000/gdm/Xauthority-c
/run/user/1000/gdm/Xauthority-l
22048/31772MB
[9136:3258 0:2003] 03:51:26 Пн 25 янв [mona@goku:pts/2 +1] ~
$ cat /run/user/1000/gdm/Xauthority-c
22048/31772MB
[9136:3258 0:2004] 03:51:49 Пн 25 янв [mona@goku:pts/2 +1] ~
$ cat /run/user/1000/gdm/Xauthority-l
22081/31772MB
[9136:3258 0:2005] 03:51:58 Пн 25 янв [mona@goku:pts/2 +1] ~
$ cat /run/user/1000/gdm/Xauthority
gokuMIT-MAGIC-COOKIE-1R��9��s{�H��H�l��gokuMIT-MAGIC-COOKIE-1R��9��s{�H��H�l22081/31772MB
[9136:3258 0:2006] 03:52:03 Пн 25 янв [mona@goku:pts/2 +1] ~
Также установка его на найденный файл Xauthority не решила проблему:
$ export XAUTHORITY=/run/user/1000/gdm/Xauthority
22022/31772MB
[9136:3258 0:2010] 03:54:31 Пн 25 янв [mona@goku:pts/2 +1] ~
$ xclock
Недействительный ключ MIT-MAGIC-COOKIE-1Ошибка: Невозможно открыть дисплей: :0
Я uid 1000:
uid=1000(mona) gid=1000(mona) группы=1000(mona),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),131(lxd),132(sambashare)
У меня также есть следующее о xauth
:
$ xauth info
Файл авторизации: /run/user/1000/gdm/Xauthority
Новый файл: нет
Файл заблокирован: нет
Количество записей: 2
Изменения учтены: да
Изменения сделаны: нет
Текущий ввод: (argv):1
21740/31772MB
[11979:11971 0:2016] 05:26:34 Пн 25 янв [mona@goku:pts/0 +1] ~
$ xauth list
goku/unix: MIT-MAGIC-COOKIE-1 SECRET_KEY
#ffff#676f6b75#: MIT-MAGIC-COOKIE-1 SECRET_KEY
Ответ или решение
Ошибка xhost: unable to open display "desktop:0"
может быть вызвана несколькими причинами, связанными с настройками X11 и авторизацией доступа к дисплею. Чтобы понять, как исправить данную проблему, давайте детально разберем возможные причины и решения, основываясь на предоставленной вами информации.
1. Установка переменной DISPLAY
Вы правильно заметили, что команда export DISPLAY=desktop:0
не сработала. По умолчанию переменная DISPLAY
для X-сессии обычно устанавливается в формате :0.0
или просто :0
. Попробуйте команду:
export DISPLAY=:0
или
export DISPLAY=:0.0
2. Проверка наличия X-сессии
Убедитесь, что вы используете активную сессию X11. Вы можете проверить это с помощью команды:
ps aux | grep X
Это должно показать запущенный процесс X-сервера. Если в процессе отсутствует, необходимо запустить X-сервер.
3. Аутентификация с помощью MIT-MAGIC-COOKIE
Ошибка Invalid MIT-MAGIC-COOKIE-1 key
указывает на проблемы с аутентификацией. Если вы видите странные символы в вашем файле .Xauthority
, это может свидетельствовать об его повреждении. Попробуйте удалить текущий файл .Xauthority
и создать новый:
rm ~/.Xauthority
xauth generate :0 . trusted
После этого проверьте, был ли создан новый файл .Xauthority
, и повторите попытку.
4. Проверка хостов
Команда xhost +local:
не сработала из-за ошибки "unable to open display". Прежде чем запускать её, убедитесь, что переменная DISPLAY
корректно настроена на текущую сессию. Если это не помогает, попробуйте:
xhost +SI:localuser:$(whoami)
Это добавит разрешения для вашего локального пользователя.
5. Перезагрузка дисплейного менеджера и очистка кэша
Если ничто из вышеперечисленного не сработало, попробуйте перезапустить дисплейный менеджер:
sudo systemctl restart display-manager
После перезагрузки снова проверьте файлы Xauthority
и настройте переменные окружения.
6. Замечание о gdm
Вы используете gdm
как дисплейный менеджер. Убедитесь, что ваш пользователь имеет права доступа для управления выводом X-сервера. Если вы работаете под другим пользователем (не под mona
), это может вызвать проблемы.
Заключение
Создайте новую X-сессию с нужными переменными окружения и проверьте права доступа. Если все еще возникают проблемы, рассмотрите обновление или переустановку пакетов, связанных с X11 и gdm, поскольку это может решить проблемы с поврежденными зависимостями.
Если все вышеперечисленное не помогает, можете обратиться за помощью к сообществу Ubuntu или на форумы, предоставив всю полученную информацию.