Давайте настроим удаленный графический доступ на машину с Debian. Получив такой доступ, мы увидим рабочий стол машины с Debian и сможем управлять им, двигая мышкой и нажимая клавиши. Сделаем это с помощью технологии VNC (Virtual Network Computing). Погнали!

План действий

Сначала работаем на удаленной машине с Debian, графический доступ к которой нам нужен. Установим и настроим VNC сервер.

Затем работаем на локальной машине, установим и настроим VNC клиент. VNC клиенты существуют под все операционные системы, и настройка их однотипная. В этой статье установим и настроим VNC клиент под Windows.

Установка VNC сервера

Устанавливаем VNC сервер:

apt install tightvncserver

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

su - user

Запускаем VNC сервер:

vncserver

При первом запуске VNC сервера потребуется придумать и ввести пароль пользователя для подключения по VNC. Длина пароля не должна превышать 8 символов.

VNC сервер. Ввод пароля

Если нужен View-Only Password (пароль, позволяющий пользователю только просматривать удаленный рабочий стол, без возможности двигать мышкой и нажимать клавиши), то нужно будет его придумать и ввести. Если не нужен View-Only Password, то можно отказаться от его ввода.

По умолчанию VNC сервер запускается и слушает TCP порт 5901.

Проверить прослушиваемые порты:

netstat -nltp
Проверка прослушиваемых портов

Порт 5901 соответствует VNC дисплею :1, поскольку в VNC используется правило: номер порта = 5900 + номер дисплея.

Т.е. если запустить VNC сервер командой:

vncserver :2

то VNC сервер будет слушать TCP порт 5902, а :2 — это второй VNC дисплей.

Настройка VNC сервера

VNC сервер запушен, но его надо еще настроить, поэтому останавливаем его командой:

vncserver -kill :1

Узнаем, какая графическая оболочка используется:

echo $XDG_CURRENT_DESKTOP

У меня, например, Xfce.

Если графическая оболочка не установлена, устанавливаем:

apt install xfce4 xfce4-goodies

Приводим скрипт ~/.vnc/xstartup, где тильда ~ обозначает домашнюю директорию текущего пользователя, к виду:

#!/bin/sh

startxfce4 &

где startxfce4 — запуск графической оболочки Xfce. В случае использования другой графической оболочки замените startxfce4 на:

  • startlxqt — для LXQt,
  • gnome-session — для GNOME,
  • startkde — для KDE Plasma,
  • mate-session — для MATE.

Скрипт ~/.vnc/xstartup выполняется каждый раз при запуске VNC сервера.

Настройка автозапуска VNC сервера

Для автозапуска VNC сервера при запуске системы создаем systemd сервис:

touch /etc/systemd/system/vncserver@.service

В созданный файл /etc/systemd/system/vncserver@.service добавляем следующий текст:

[Unit]
Description=Start TightVNC server at startup for user %i
After=network.target

[Service]
Type=forking
User=%i
WorkingDirectory=/home/%i

ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1

[Install]
WantedBy=multi-user.target

Перезагружаем конфигурацию systemd:

systemctl daemon-reexec
systemctl daemon-reload

Чтобы при старте системы VNC сервер запускался от имени пользователя user:

systemctl enable vncserver@user.service

Чтобы запустить systemd сервис вручную прямо сейчас, без перезагрузки системы:

systemctl start vncserver@user.service

Готово! VNC сервер настроен и запущен.

Смена пароля пользователя для подключения по VNC

Чтобы сменить пароль пользователя user для подключения по VNC, заходим под пользователем user или переключаемся на него с помощью команды:

su - user

Команда для смены пароля:

vncpasswd

Длина пароля не должна превышать 8 символов. Иначе, пароль будет усечен.

VNC клиент под Windows

Все работы на удаленной машине с Debian у нас завершены. Все оставшиеся работы будем производить на локальной машине с Windows, на которой мы хотим получить удаленный рабочий с Debian.

Установка TightVNC

Скачиваем TightVNC для Windows по ссылке: https://www.tightvnc.com/download.php и устанавливаем. В установленных программах находим и запускаем TightVNC Viewer — это VNC клиент.

Настройка SSH тунеля для VNC

VNC свой трафик не шифрует, пароль пользователя для подключения по VNC ограничен 8 символами, поэтому для безопасности на клиенте настраиваем SSH тунель для VNC, который будет шифровать трафик. Кроме того, благодаря SSH тунелю на удаленной машине с Debian не нужно будет открывать наружу порт 5901.

Скачиваем PuTTY по ссылке: https://www.putty.org/ и запускаем. В разделе Session, в поле Host Name (or IP address) указываем IP адрес удаленной машины с Debian. В поле Port — номер SSH порта, прослушиваемого удаленной машиной с Debian.

Настройка SSH тунеля для VNC. IP адрес и порт

В разделе Connection -> SSH -> Tunnels, в поле Source port вводим 5901, в поле Destination вводим:

localhost:5901

и нажимаем кнопку Add.

Настройка SSH тунеля для VNC. Source port и Destination

Чтобы не вводить все эти параметры каждый раз, можно вернуться в раздел Session и сохранить сессию, нажав кнопку Save.

Нажимаем кнопку Open для открытия SSH тунеля для VNC, вводим логин и системный пароль пользователя удаленной машины Debian. В моем случае это будет пользователь user. Все! SSH тунель для VNC установлен.

Пререходим с VNC клиенту TightVNC Viewer, в поле Remote Host вводим:

localhost::5901
TightVNC Viewer. Remote Host

и нажимаем кнопку Connect.

Вводим пароль пользователя для подключения по VNC:

TightVNC Viewer. Пароль пользователя для доступа по VNC

Ура! Я вижу удаленный рабочий стол Debian.

TightVNC Viewer. Удаленный рабочий стол

Аутентификация по ключу в SSH

Теперь, когда все работает, для безопасности настроим аутентификацию в SSH не по логину и системному паролю, а по ключу. Подробная статья об этом: «SSH key в Windows и Linux. Руководство«.

Выводы

Я использую VNC для доступа к своей рабочей машине с Debian, когда еузжаю и нет возможности взять рабочую машину с собой.

Все вопросы, пожалуйста, в комментариях под статьей.

Комментарии

Добавить комментарий

Этот сайт защищен reCAPTCHA, и к нему применяются Google Политика конфиденциальности и Условия использования.

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.