В этой статье — всё о настройке удалённого доступа к серверу: от обзора протоколов подключения до советов по защите данных. Узнайте, как дать доступ к серверу по SSH, RDP и VNC и не потерять контроль над инфраструктурой.
Современные серверы редко находятся в соседней комнате — они расположены в облаках или удалённых дата-центрах (и, бывает, даже на другом континенте). Физически управлять ими невозможно, поэтому удалённый доступ становится единственным способом взаимодействовать с ними. Администраторам удалённый доступ к серверу нужен для настройки, обновления и мониторинга без необходимости находиться рядом с железом. Для разработчиков это возможность тестировать приложения в реальных условиях. А для бизнеса — сокращение затрат на инфраструктуру и её поддержку.
Неправильная настройка удалённого доступа — всё равно что оставить ключи от дома под ковриком. Чтобы вы избежали ошибок, рассмотрим, как правильно включить удалённый доступ к серверу, используя популярные протоколы SSH, RDP и VNC, и как сделать подключение эффективным и главное — безопасным.
От чего зависит выбор протокола подключения
Перед настройкой определитесь, какой тип доступа вам нужен. Есть несколько протоколов удалённого подключения, и каждый из них решает свои задачи.
- SSH (Secure Shell) — для работы с командной строкой Linux/Unix, туннелирования трафика, передачи файлов (SCP/SFTP). SSH имеет минимальные требования к качеству интернет-соединения, высокую безопасность (шифрование AES), поддерживает ключи вместо паролей, но у него нет возможности работать с GUI.
- RDP (Remote Desktop Protocol) — удалённый рабочий стол Windows. С RDP вы получите полный доступ к GUI Windows, интеграцию с буфером обмена и локальными дисками. Однако протокол требователен к пропускной способности сети и работает без сбоев только при быстрых соединениях.
- VNC (Virtual Network Computing) — технология подойдёт для удалённого управления любыми операционными системами (Linux, macOS, Windows). Преимущества VNC — кроссплатформенность, GUI, возможность работы через веб-браузер. Но по умолчанию информация передаётся без шифрования, поэтому для её защиты потребуется настройка TLS.
Для удалённых серверов с Linux обычно используют SSH, для Windows — RDP. VNC — универсальный, но менее безопасный вариант; он выручает, когда нужен доступ к GUI Linux.
Как включить удалённый доступ к серверу
Доступ по SSH к серверу с Linux/Unix
- Установка OpenSSH-сервера
На большинстве дистрибутивов Linux пакет OpenSSH уже предустановлен. Если нет, то установите его из-под root:
Ubuntu/Debian:
apt update && apt install openssh-server
CentOS/RHEL:
yum install openssh-server
CentOS 8+, RHEL 8+:
dnf install -y openssh-server
Проверьте статус службы:
systemctl status sshd
или
systemctl status ssh
В CentOS/RHEL служба называется sshd, в Ubuntu и Debian просто ssh.
- Настройка файла конфигурации
Основной файл — /etc/ssh/sshd_config. Отредактируйте его с помощью nano или vim:
nano /etc/ssh/sshd_config
Измените следующее:
- Port 22 — смените на нестандартный порт, чтобы снизить количество автоматических атак. У нас в примерах будет Port 2222.
- PermitRootLogin yes — измените на no, чтобы запретить вход под root.
- PasswordAuthentication yes — установите no после настройки SSH-ключей.
Примените изменения:
systemctl restart sshd
- Генерация SSH-ключей
Пароли уязвимы к брутфорсу, поэтому используйте асимметричное шифрование. В приложении-клиенте (на вашем ПК) выполните:
ssh-keygen -t ed25519
или
ssh-keygen -t rsa -b 4096
Ed25519 безопаснее и быстрее RSA, однако если у вас старая версия OpenSSH, то используйте RSA.
При запросе введите путь к файлам, по умолчанию это:
~/.ssh/id_ed25519
Не устанавливайте парольную фразу, если не нужна двухфакторная аутентификация.
Скопируйте публичный ключ на сервер:
ssh-copy-id -p 2222 user@server_ip
Проверьте соединение:
ssh -p 2222 user@server_ip
Доступ к серверу с Windows по RDP
RDP есть во всех серверных версиях Windows, а также в Pro и Enterprise из коробки. Для домашних версий используйте альтернативные приложения (RDP Wrapper).
- Активируйте RDP на сервере
Перейдите по пути «Пуск» → «Параметры» → «Система» → «Удалённый рабочий стол».
Активируйте «Включить удалённый рабочий стол».
Скопируйте имя компьютера (или его IP-адрес).
- Настройка брандмауэра
Зайдите в «Панель управления» → «Брандмауэр Защитника Windows» → «Дополнительные параметры».
Дайте разрешение на входящие подключения для правил «Удалённое управление рабочим столом (TCP-In)».
- Как подключиться с клиентского ПК и защитить RDP-соединение
На Windows используйте штатную программу «Подключение к удалённому рабочему столу» (mstsc.exe). На Linux или Mac используйте Remmina или Vinagre.
Включите Network Level Authentication (NLA). Команда через PowerShell:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Value 1
Используйте VPN или измените порт (через реестр:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber).
После изменения порта обязательно перезапустите службу:
Restart-Service TermService
Доступ к серверу по VNC
Удалённый доступ по VNC подходит, когда нужно работать в графическом окружении Linux. Одни из самых популярных приложений для этого — TigerVNC, RealVNC, VNCViewer, TightVNC. Для примера рассмотрим установку и настройку TigerVNC на Ubuntu.
- Установка
apt install tigervnc-standalone-server tigervnc-xorg-extension
- Создание конфигурации
Запустите VNC-сервер в первый раз:
vncserver -localhost no -geometry 1920x1080 -depth 24
Установите пароль (8 символов минимум).
Остановите VNC-сервер:
vncserver -kill :1
Отредактируйте конфиг ~/.vnc/xstartup для запуска DE (например, GNOME):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
exec gnome-session &
- Запуск через systemd
Создайте файл /etc/systemd/system/vncserver@.service:
[Unit]
Description=VNC Server for %i
[Service]
User=%i
WorkingDirectory=/home/%i
ExecStart=/usr/bin/vncserver -fg -localhost no
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Запустите сервис:
systemctl start vncserver@1.service
Защита удалённого доступа
Настраивая удалённый доступ к серверу, не забывайте, что безопасность — главный приоритет. Даже если вы подключаетесь по SSH и используете ключи вместо пароля, сервер может быть уязвим. Не пренебрегайте дополнительными мерами: настройте брандмауэр, включите 2FA и используйте VPN.
- Настройка брандмауэра
UFW (Linux):
ufw allow 2222/tcp # для SSH
ufw enable
Firewalld (CentOS):
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
- Двухфакторная аутентификация (2FA) для SSH
Установите Google Authenticator:
apt install libpam-google-authenticator
Настройте PAM-модуль в /etc/pam.d/sshd:
auth required pam_google_authenticator.so
Измените sshd_config:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
Убедитесь, что параметр UsePAM yes активен.
- VPN (в примере — WireGuard)
Установка приложения:
apt install wireguard
Сгенерируйте ключи:
wg genkey | tee privatekey | wg pubkey > publickey
Настройте интерфейс (/etc/wireguard/wg0.conf):
[Interface]
Address = 10.0.0.1/24
PrivateKey = <ваш_приватный_ключ>
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <открытый_ключ>
AllowedIPs = 10.0.0.2/32
Вместо eth0 укажите ваш сетевой интерфейс.
Разрешайте доступ только через ВПН.
Типичные проблемы и их решение
Даже опытные админы сталкиваются с ошибками. Разберём частые сценарии.
- «Connection refused» при подключении по SSH
Причины:
- Сервис SSH не запущен.
- Брандмауэр блокирует порт.
- Неправильный IP или порт.
Решение:
systemctl status sshd # проверьте статус
ufw status verbose # посмотрите правила
nc -zv server_ip 2222 # проверьте доступность порта
- Чёрный экран при подключении через VNC
Причины:
- Неправильный DE в xstartup.
- Отсутствие прав на файл конфигурации.
Решение:
Убедитесь, что в xstartup указана корректная сессия (gnome, xfce и т.д.).
Выставьте права:
chmod +x ~/.vnc/xstartup
- RDP-клиент не подключается к Windows
Причины:
- Отключён NLA (Network Level Authentication).
- Неправильная версия протокола.
Решение:
- Включите NLA в настройках Windows.
- Обновите клиент (например, используйте последнюю версию Remmina).
Заключение
Теперь вы знаете, как включить удалённый доступ, и можете управлять серверами из любой точки мира, не жертвуя безопасностью! Используйте SSH с ключами для Linux, RDP с NLA для Windows и не забывайте про VPN. Регулярно обновляйте софт, настройте брандмауэр и мониторьте логи (например, через journalctl -u sshd).
Главные правила:
- Никогда не оставляйте аутентификацию по паролю для SSH.
- Меняйте стандартные порты.
- Создавайте резервные копии конфигураций и ключей.
Читайте в блоге:
- Лучшие RDP-клиенты для Windows 10 и 11: что выбрать в 2025 году
- RDP и буфер обмена: решение проблемы с копированием
- Сеть под контролем: защита данных и удалённый доступ с помощью VPN