Как использовать X-пересылку SSH для запуска удаленных приложений
Бывают случаи, когда быстрее, проще или даже необходимо использовать графическое приложение, а бывают случаи, когда вы можете находиться вдали от компьютера, на котором установлены важные приложения.
Каким бы ни был сценарий, Linux и другие операционные системы, на которых работает X-сервер, имеют возможность пересылать графические приложения через SSH. Выполнив несколько простых шагов, вы сможете запустить удаленное приложение во всей его графической красе.
Примечание. Если вы устанавливаете несколько SSH-подключений к удаленному компьютеру, вы можете настроить его на отображение всех активных SSH-соединений.
Содержание
- Установка и настройка
- Подключение к удаленному серверу
- Автоматизация и безопасность SSH X-Forwarding
- Часто задаваемые вопросы
Установка и настройка
Прежде чем начать, вам необходимо убедиться, что клиент и сервер SSH установлены на правильных компьютерах. На главном компьютере, на котором запущены приложения, должен быть запущен SSH-сервер.
Чтобы установить SSH, вам необходимо запустить следующую команду как на клиентском, так и на серверном компьютере:
sudo apt install ssh
Другой важный предварительный шаг — убедиться, что оба компьютера подключены к сети и что вы можете подключиться к ним через SSH. Если компьютеры находятся в одном здании, это будет легко. В противном случае вам, возможно, придется настроить главный компьютер для получения SSH-соединений через брандмауэр. Чтобы узнать правильный метод переадресации портов, обратитесь к документации вашего маршрутизатора.
Подключение к удаленному серверу
- Откройте эмулятор терминала: Gnome Terminal, Konsole или что-то подобное.
- Подключитесь к главному компьютеру. Например, если IP-адрес хоста — 192.168.68.155, а имя пользователя хоста — «ramces», введите следующее:
ssh -X ramces@192.168.68.155
Это указывает SSH начать вызовы сервера X-пересылки на клиентский компьютер.
- В ответ на запрос пароля введите пароль.
- Запустите приложение. Например, если вы хотите запустить Gedit, просто введите команду:
gedit &
Примечание, если вы используете KDE, вам нужно будет добавить «dbus-launch» перед приложениями KDE. Например: dbus-launch kwrite &
. Другие приложения, не требующие D-Bus, должны работать и без него.
Автоматизация и безопасность SSH X-Forwarding
Теперь вы сможете запускать удаленные приложения X по своему желанию. Это может быть очень полезно, если, например, у вас есть компьютер с очень маленьким жестким диском, без жесткого диска или даже без привода для компакт-дисков, что характерно для многих нетбуков и недорогих мини-настольных компьютеров.
Чтобы автоматизировать этот процесс, вы можете настроить открытые ключи SSH для подключения без паролей и написать исполняемый скрипт. Кроме того, если вам нужна переадресация полного сеанса X, вы можете использовать технологию VNC через TigerVNC и x11vnc.
Как и в случае с любым сетевым решением, вам также необходимо убедиться, что ваш удаленный сервер безопасен. Использование SSH обеспечивает безопасное соединение, но оно бесполезно, если ваш пароль легко угадать, а ваш брандмауэр позволяет любому получить к нему доступ.
Если у вас есть безопасный план, удаленная пересылка X станет отличным способом загружать удаленные приложения по требованию и управлять удаленными компьютерами. Возможности ограничены только вашим воображением и скоростью вашего сетевого подключения.
Часто задаваемые вопросы
Можете ли вы использовать SSH X-Forwarding в системах Wayland?
Да! Вы можете легко использовать SSH X-Forwarding в Wayland, установив xwayland. Это уровень совместимости, который служит для связи приложений, предназначенных только для Xorg, с чисто средой Wayland. Чтобы установить это, запустите sudo apt install xwayland
.
Кроме того, вы также можете принудительно включить X-пересылку SSH в системах Wayland, заменив флаг «-X» на «-Y». Однако этот альтернативный вариант невероятно небезопасен. Когда вы используете этот конкретный флаг, вам необходимо убедиться, что вы находитесь в закрытой частной сети.
Почему некоторые данные, введенные мной в удаленном приложении, теряются?
Эта проблема, скорее всего, связана с задержкой между вашим локальным и удаленным компьютером. SSH X-Forwarding должен быть надежным решением, если задержка между вашим локальным и удаленным компьютером составляет менее 5000 мс, поскольку клиент SSH разрывает любое чрезвычайно медленное соединение, чтобы защитить его от атаки Slow Loris.
Могу ли я получить доступ к локальным файлам через удаленное приложение с помощью SSH X-пересылки?
Нет. По умолчанию X-пересылка по SSH «пересылает» только программу с графическим интерфейсом с вашего удаленного компьютера на дисплей вашего локального компьютера, так что программа с графическим интерфейсом при X-пересылке ведет себя скорее как проекция, чем как бумажная копия программы. Из-за этого эта удаленная программа с графическим интерфейсом сможет получить доступ только к тем файлам, которые также доступны на вашем удаленном компьютере.
Изображение предоставлено: Unsplash. Все изменения и скриншоты Рамсеса Реда.