Вопрос или проблема
Я сейчас пытаюсь запустить clamtk по ssh-соединению. Из прочитанного я понял, что нужно включить Xforwarding, поэтому я попробовал следующее.
-
На Mac я скачал XQuartz. Там я подключился к своему серверу, выполнив
ssh -Y user@server
. Я смог войти. В командной строке я запустил:clamtk
И я получил эту ошибку:
Gtk-WARNING **: cannot open display: at /usr/lib64/perl5/vendor_perl/Gtk2.pm line 168.
Я также попробовал:
ssh -X user@server
из XQuartz. Я получил ту же ошибку.
ИЗМЕНЕНИЕ: Я перешел по ссылке в комментариях и попробовал это из того ответа:
1. Перешел в /etc/ssh/sshd_config и установил X11Forwarding yes
2. Установил export DISPLAY="127.0.0.1:10.0"
Ни один из этих вариантов не сработал для меня.
Я почти уверен, что это означает, что программа имеет графический интерфейс (такие как skype или wireshark), и она не может отображаться в терминале.
Ответ или решение
Сообщение об ошибке Gtk-WARNING **: cannot open display, которое вы получаете при попытке запустить ClamTK через SSH, указывает на то, что приложение не может получить доступ к дисплею X-сервера для отображения своего графического интерфейса. Проблема может возникать по нескольким причинам, и ниже приведены пошаговые рекомендации по устранению этой ошибки.
1. Убедитесь, что XQuartz установлен и запущен
Перед подключением к серверу убедитесь, что вы установили XQuartz на ваш Mac и активно запущен XQuartz. Убедитесь, что вы открываете новый терминал через XQuartz.
2. Подключение к серверу с X Forwarding
При подключении к серверу, используйте ключи -Y
или -X
для включения X Forwarding:
ssh -Y user@server
или
ssh -X user@server
Если используете -Y
, это обеспечивает более широкие возможности, чем -X
, и может помочь в некоторых случаях.
3. Проверка конфигурации SSH на сервере
Убедитесь, что на сервере в файле конфигурации SSH (/etc/ssh/sshd_config
) включены следующие строки:
X11Forwarding yes
X11DisplayOffset 10
После внесения изменений необходимо перезапустить демона SSH на сервере:
sudo systemctl restart sshd
4. Установка переменной DISPLAY
При успешном подключении к серверу убедитесь, что переменная окружения DISPLAY
настроена правильно. Обычно это делает SSH автоматически, но для проверки выполните:
echo $DISPLAY
Если она не задана, вы можете установить ее вручную, как например:
export DISPLAY=localhost:0
или
export DISPLAY=127.0.0.1:10.0
5. Проверка работы X-сервера
Для проверки, функционирует ли ваш X-сервер, можно выполнить простую команду:
xterm
Если окно xterm открывается, это означает, что X-сервер работает правильно.
6. Устранение возможных проблем
- Firewall и безопасность: Убедитесь, что firewall на сервере не блокирует соединение. Иногда настройка безопасности может предотвратить передачу данных.
- Authentication cookies: Если вы все еще сталкиваетесь с проблемами, попробуйте обновить cookies для аутентификации X:
xauth list
Проверьте, есть ли записи, соответствующие вашему хосту и дисплею, и если нет, добавьте их.
Заключение
Следуя перечисленным рекомендациям, вы сможете устранить ошибку Gtk-WARNING **: cannot open display при попытке запустить ClamTK через SSH. Если проблема не разрешена, возможно, стоит проверить логи SSH или конфигурации X-сервера для дальнейшей диагностики. Помните, что успешная настройка терминалов с графическим интерфейсом требует четкого следования указанным шагам и учёта различных параметров как на клиенте, так и на сервере.