Как включить SSH в Proxmox VE? (7 шагов)

В этой статье показано, как включить SSH, защитить его с помощью аутентификации по ключам и правил межсетевого экрана, настроить доступ к VM и устранить неполадки. Вы узнаете, как усилить безопасность SSH в Proxmox и диагностировать проблемы подключения.

download-icon
Скачайте Бесплатно
Для ВМ, ОС, БД, файлов, NAS и т.д.
mavis-yang

Обновлено Mavis Yang 2026/07/21

Оглавление
  • Как настроить SSH в Proxmox?

  • Как подключиться по SSH к VM Proxmox?

  • Как настроить удалённый SSH-доступ в Proxmox VE?

  • Решение проблем подключения при настройке SSH

  • Дополнительная информация о SSH в Proxmox

  • Часто задаваемые вопросы о включении SSH в Proxmox

  • Заключение

SSH позволяет удалённо администрировать хосты и VM Proxmox VE через CLI. Он помогает обходиться без веб-интерфейса при автоматизации, запуске скриптов и устранении неполадок. SSH нужен, если веб-GUI недоступен или работает медленно. С его помощью можно автоматизировать массовые задачи, запускать пакетные обновления, диагностировать проблемы загрузки через serial console, например с помощью qm terminal, когда агенты не работают. Также можно напрямую проверять журналы или выполнять кластерные команды без действий мышью. SSH полезен и при анализе инцидентов, когда GUI зависает.

Если вы хотите безопасно настроить SSH, доступ к VM, усиление защиты и диагностику, следуйте этому руководству. В нём рассмотрены конфигурация, сетевые режимы, доступ по ключам, правила межсетевого экрана, кластерная настройка и распространённые способы исправления проблем.

Как настроить SSH в Proxmox?

1. Proxmox VE включает OpenSSH по умолчанию. Проверьте его с помощью systemctl status sshd. По умолчанию SSH прослушивает порт 22. Сначала обновите пакеты Proxmox до последней стабильной версии. Убедитесь, что SSH активен: ss -tuln | grep :22 покажет, что порт прослушивается. Отредактируйте /etc/ssh/sshd_config для усиления безопасности доступа. Например:

PermitRootLogin no
PasswordAuthentication no
AllowUsers admin_user
Port 2222

2. Перезагрузите конфигурацию SSH: systemctl reload sshd. Проверьте подключение: ssh -T admin_user@proxmox_ip -p 2222.

3. Затем ограничьте root-доступ. Используйте PermitRootLogin no, чтобы принудительно использовать пользователей без root-прав. Создайте администратора: adduser admin_user, затем предоставьте sudo через usermod -aG sudo admin_user. Разместите публичный ключ в

/home/admin_user/.ssh/authorized_keys. На стороне клиента используйте ssh-keygen -t ed25519 и ssh-copy-id -i ~/.ssh/id_ed25519.pub admin_user@proxmox_ip -p 2222.

4. Настройте правила межсетевого экрана. Если вы используете UFW на отдельном хосте управления или в тестовой среде, выполните ufw allow 2222/tcp. Для межсетевого экрана Proxmox VE добавьте правило:

pve-firewall add SSH --action ACCEPT --source <TRUSTED_IP> --iface <node>

Синтаксис может отличаться при использовании службы proxmox-firewall на базе nftables. Убедитесь, что правило активно.

5. Рассмотрите возможность изменения порта по умолчанию. После редактирования Port 2222 в sshd_config обновите контексты SELinux/AppArmor, если они применяются. Для SELinux: semanage port -a -t ssh_port_t -p tcp 2222. Перезагрузите политики. Настройте межсетевой экран так, чтобы он разрешал новый порт.

6. Установите Fail2Ban для защиты от brute-force атак. В Proxmox на базе Debian:

apt update
apt install fail2ban

7. Создайте jail для SSH в /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

8. Перезапустите службу: systemctl restart fail2ban. Отслеживайте заблокированные IP с помощью fail2ban-client status sshd.

9. При необходимости добавьте двухфакторную аутентификацию. Установите libpam-google-authenticator:

apt install libpam-google-authenticator

10. Выполните google-authenticator для каждого пользователя. В /etc/pam.d/sshd добавьте:

auth required pam_google_authenticator.so

11. А в sshd_config задайте ChallengeResponseAuthentication yes. Перезагрузите SSH. Проверьте вход с ключом и TOTP.

12. Регулярно проверяйте конфигурацию SSH:

sshd -T | grep -i permitroot
grep -i allowusers /etc/ssh/sshd_config

Убедитесь, что настройки соответствуют политике безопасности. Для согласованности на всех узлах используйте инструмент управления конфигурациями.

Как подключиться по SSH к VM Proxmox?

1. Убедитесь, что в VM установлен SSH-сервер. Большинство Linux-шаблонов уже включает OpenSSH. Если он отсутствует, установите его: apt install openssh-server или аналогичную команду. Выберите сетевой режим: bridged, routed или NAT с пробросом портов. В режиме bridged VM получает IP в LAN через vmbr0. В режиме routed назначьте маршрутизируемую подсеть или используйте VLAN. Для NAT настройте port forwarding на хосте:

iptables -t nat -A PREROUTING -p tcp --dport 2223 -j DNAT --to-destination <VM_IP>:22

2. Проверьте подключение: с хоста выполните ssh root@<VM_IP> или через проброшенный порт: ssh user@host_ip -p 2223.

3. Проверьте межсетевой экран VM. Если межсетевой экран Proxmox VE включён для этой VM, временно отключите его с помощью qm set <VMID> --firewall 0 или добавьте правила, разрешающие SSH. Внутри VM проверьте ufw status или iptables -L. Убедитесь, что порт 22 открыт.

4. Используйте QEMU agent для получения данных из гостевой системы. Если он установлен, выполните:

qm guest exec <VMID> -- ip addr

Эта команда покажет IP VM без входа в систему. Убедитесь, что агент запущен внутри гостевой ОС.

5. Для root-входа лучше отключить прямой root-доступ в VM. Используйте обычного пользователя с sudo. Аналогично добавьте SSH-ключи. Используйте ssh-copy-id user@vm_ip. Если VM находится за NAT, убедитесь, что проброс портов работает на хосте и межсетевой экран сети его разрешает. Если используется routed mode, проверьте корректность маршрутизации и правил межсетевого экрана.

6. Для диагностики проблем SSH с клиентского хоста выполните nc -zv proxmox_ip 2223 или telnet proxmox_ip 2223. На VM проверьте systemctl status sshd, изучите /var/log/auth.log или journalctl -u sshd. При необходимости измените межсетевой экран или сетевые настройки.

Как настроить удалённый SSH-доступ в Proxmox VE?

1. Сначала убедитесь, что межсетевой экран хоста разрешает SSH-порт. В межсетевом экране Proxmox VE добавьте правило ACCEPT для SSH из доверенных подсетей или IP. Например:

pve-firewall add SSH --action ACCEPT --source 203.0.113.0/24

2. Если используются IPv4 и IPv6, примените правила для обоих протоколов. Для внешних межсетевых экранов разрешайте выбранный порт только с известных адресов.

3. Ограничьте SSH-доступ: используйте AllowUsers admin_user@203.0.113.* или похожую настройку в sshd_config. Это ограничит источники входа. Используйте только аутентификацию по ключам: PasswordAuthentication no. После этого перезагрузите SSH.

4. Измените порт по умолчанию. Отредактируйте Port 2222. Перезагрузите SSH: systemctl reload sshd. Обновите правила межсетевого экрана, чтобы разрешить новый порт. Для контекстов SELinux используйте semanage port -a -t ssh_port_t -p tcp 2222, если SELinux включён. Для AppArmor убедитесь, что нет конфликтующих профилей.

5. Для узлов кластера настройте SSH-ключи без пароля. На каждом узле:

ssh-keygen -t ed25519
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@node2_ip -p 2222

6. Повторите настройку так, чтобы каждый узел мог подключаться к другим по SSH без пароля. Проверьте с помощью ssh node2 pvecm status. Это помогает при live migration, репликации и скриптах.

7. При необходимости используйте jump host. С рабочей станции администратора:

ssh -J admin_user@bastion_ip admin_user@proxmox_ip -p 2222

Это снижает риск прямого открытия доступа. Bastion-хост должен быть усилен и находиться под мониторингом.

8. Включите журналирование и мониторинг. Проверяйте /var/log/auth.log на события SSH. Интегрируйте журналы с SIEM или log collectors. Настройте ротацию журналов и оповещения о повторяющихся неудачных попытках входа. Используйте Fail2Ban для блокировки атакующих. Периодически проверяйте /etc/ssh/sshd_config через sshd -T. Автоматизируйте проверки в CI/CD pipelines.

Решение проблем подключения при настройке SSH

1. Если кажется, что SSH-порт закрыт, проверьте на хосте ss -tuln | grep 2222. С удалённой стороны используйте nc -zv proxmox_ip 2222. Если запрос истекает по тайм-ауту, проверьте межсетевой экран. Если подключение отклонено, убедитесь, что sshd активен: systemctl status sshd. Проверьте отказы SELinux/AppArmor в audit logs.

2. Если хост недоступен по SSH, но GUI работает, проверьте сетевой интерфейс и маршруты: ip addr, ip route. Если GUI недоступен, но SSH работает, проверьте systemctl status pveproxy и ss -tuln | grep 8006. Перезапустите службы GUI: systemctl restart pveproxy pvedaemon.

3. Если вход по ключу не работает, включите подробный режим SSH-клиента: ssh -vvv admin_user@proxmox_ip -p 2222. Проверьте несоответствие ключей или прав доступа. Убедитесь, что ~/.ssh и authorized_keys имеют правильные разрешения (700/600).

4. Если кластерные команды зависают, проверьте SSH-связь между узлами. Используйте ssh node1 pvecm status и ssh node2 hostname. Проверьте host keys; замените устаревшие записи в ~/.ssh/known_hosts, если IP-адреса изменились.

Дополнительная информация о SSH в Proxmox

Следуя пошаговому руководству выше, вы сможете защитить SSH-доступ. Но для Proxmox также нужен надёжный план резервного копирования. Vinchin Backup & Recovery - корпоративное решение для защиты Proxmox.

  • Оно поддерживает полное и инкрементное резервное копирование VM.

  • Оно использует дедупликацию и сжатие для экономии хранилища.

  • Оно позволяет выполнять резервное копирование по расписанию и задавать политики хранения.

  • Оно бесшовно интегрируется с Proxmox и другими виртуальными платформами, такими как VMware и Hyper-V.

  • Оно создаёт задания резервного копирования для VM без установки агента.

  • Оно также проверяет резервные копии и обеспечивает быстрое восстановление.

  • Оно поддерживает внешнюю репликацию и шифрование для безопасности данных, помогая обеспечивать непрерывность бизнеса и ускорять восстановление.

  • Оно также упрощает удобную V2V-миграцию между поддерживаемыми виртуальными платформами, обеспечивая гибкость и простую передачу данных.

Веб-консоль Vinchin интуитивно понятна. Чтобы создать резервную копию Proxmox VM:

Шаг 1. Сначала выберите Proxmox VM, для которой нужно создать резервную копию.

Выберите Proxmox VM, для которой нужно создать резервную копию

Шаг 2. Затем выберите хранилище резервных копий в своей среде.

Выберите хранилище резервных копий

Шаг 3. Затем настройте стратегии резервного копирования.

Настройте стратегии резервного копирования

Шаг 4. Наконец, отправьте задание.

Отправьте задание

Vinchin обслуживает клиентов по всему миру и получает высокие оценки. Воспользуйтесь 60-дневной бесплатной пробной версией со всеми функциями, чтобы понять, как решение подходит вашему рабочему процессу. Скачайте установщик для простого развертывания и начните защищать свои VM уже сегодня.

Часто задаваемые вопросы о включении SSH в Proxmox

Вопрос 1. Как проверить SSH-подключение, если GUI Proxmox недоступен?

Используйте ssh admin_user@proxmox_ip -p 2222 с доверенного хоста; убедитесь, что порт открыт и служба SSH активна.

Вопрос 2. Как усилить безопасность SSH в Proxmox?

Отключите root-вход (PermitRootLogin no), включите аутентификацию по ключам (PasswordAuthentication no), ограничьте исходные IP-адреса через межсетевой экран/AllowUsers, измените порт (Port 2222) и установите Fail2Ban.

Вопрос 3. Как подключиться по SSH к VM за NAT?

Настройте проброс портов на хосте или используйте VPN: iptables -t nat -A PREROUTING -p tcp --dport 2223 -j DNAT --to-destination <VM_IP>:22, затем выполните ssh user@host_ip -p 2223.

Вопрос 4. Влияет ли межсетевой экран Proxmox на SSH-доступ?

Да. Если межсетевой экран Proxmox включён, нужно разрешить входящий трафик на SSH-порт, обычно TCP 22.

Заключение

SSH крайне важен для надёжного управления Proxmox. Защитите его с помощью аутентификации по ключам, правил межсетевого экрана, принципа минимальных привилегий и регулярных проверок. Включайте настройку SSH в процессы автоматизации и стратегии резервного копирования, чтобы обеспечить быстрое восстановление. Поддерживайте согласованные конфигурации на всех узлах и отслеживайте журналы доступа. Vinchin дополняет операции с SSH, предлагая корпоративную защиту VM в различных средах. До или после любых операций попробуйте Vinchin, чтобы получить надёжную защиту данных.

поделиться:

Категории: Виртуальная машина