SSH и X-форвардинг
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
Иногда требуется запустить какую-нибудь графическую утилиту удаленно, но при этом VNC либо недоступен (отсутствует правило в файрволе), либо нежелателен. Для этих целей можно воспользоваться возможностью сервиса sshd пробрасывать сессии X11 от сервера клиентам. При этом очевидны плюсы:
- зашифрованный канал
- меньший трафик (передается информация, необходимая для геометрического построения элементов интерфейса, а не картинка)
Содержание |
[править] Установка
Для поддержки X-Forwarding требуется собрать пакет openssh с поддержкой X:
| Code: Флаги openssh |
net-misc/openssh X |
Этот флаг вытянет по зависимостям все необходимые пакеты из категории x11-apps.
[править] Настройка
Теперь необходимо включить поддержку X11 Forwarding в конфигурационном файле sshd_config.
| Примечание: Не перепутайте, в файле sshd_config, а не ssh_config! |
Добавьте/раскомментируйте следующую строку:
| Code: /etc/ssh/sshd_config |
... X11Forwarding yes ... |
После чего перезапускаем сервис sshd:
| Code: Перезапуск sshd |
# /etc/init.d/sshd restart |
[править] Настройка клиентов
На стороне клиентов должны быть клиентские библиотеки X11 (неактуально, если в качестве клиента выступает рабочая станция Linux с настроенным графическим окружением :)). Для Windows и других экзотических ОС есть собственные реализации X11-серверов, которые могут понадобиться для нормальной работы.
Кроме этого, для клиента не нужно никаких дополнительных настроек.
Теперь попробуем подключиться к серверу:
| Code: Запуск сеанса ssh с X11-forwarding |
# ssh -X [пользователь@]<адрес сервера> [запускаемое приложение] |
Если при этом появляется ошибка xterm Xt error: Can't open display: your_client_name:0.0, то это может означать, что X11Forwarding не включен на сервере
[править] Автоматический форвардинг
Если лень каждый раз добавлять ключ -X при открытии новой сессии, то можно добавить его в список опций по умолчанию. Для этого в файле /etc/ssh/ssh_config (или ~/.ssh/config) добавьте следующие строки:
| Примечание: А вот на этот раз в файле ssh_config |
| Code: Файл /etc/ssh_config |
# Для конкретного узла Host <имя_узла> ForwardX11 yes # Или можно применить ко всем: Host * ForwardX11 yes |
[править] Проблемы
[править] BadAtom/BadWindow
Если в консоли постоянно вылазят сообщения о BadAtom или BadWindow, попробуйте добавить строку ForwardX11Trusted yes в файл ssh_config под соответствующей записью узла
[править] -X и -Y
Вместо параметра -X ssh может принимать -Y при форвардинге. Этот ключ может быть полезным в некоторых ситуациях, когда приложение не захочет работать. Однако помните, что -Y является небезопасной реализацией, так как на серверной части можно будет перехватить данные от пользователя (нажатые клавиши, например)
