云祺Logo 云祺Logo

在 Proxmox VE 中启用 SSH

2026-07-24

SSH 可实现对 Proxmox VE 主机及虚拟机的远程命令行界面(CLI)管理。它绕过网页用户界面,适用于自动化操作、脚本编写和故障排查。当网页图形界面无法访问或响应缓慢时,您需要使用 SSH。您可借助脚本批量执行任务或运行批量更新。当客户机代理失效时,可通过串口控制台(例如使用 qm terminal)调试启动问题。您也可直接查看日志,或无需鼠标点击即可运行集群命令。当图形界面卡死时,SSH 还有助于事故后的分析工作。

如需保障 SSH 配置、虚拟机访问、系统加固及诊断功能的安全性,请参考本指南,内容涵盖配置方法、网络模式、基于密钥的访问、防火墙规则、集群搭建以及常见问题修复

如何在 Proxmox 中配置 SSH?

1. Proxmox VE 默认包含 OpenSSH。可通过 systemctl status sshd 命令验证。默认监听端口为 22。首先将 Proxmox 软件包更新至最新稳定版本。确认 SSH 已启用:ss -tuln | grep :22 可显示端口正在监听。编辑 /etc/ssh/sshd_config 文件以加强访问安全。例如:

PermitRootLogin noPasswordAuthentication noAllowUsers admin_userPort 2222

2. 重新加载 SSH: systemctl reload sshd。验证命令:ssh -T admin_user@proxmox_ip -p 2222

3. 接下来,禁用 root 用户登录。使用 PermitRootLogin no 强制使用非 root 用户。创建一个管理员用户:adduser admin_user,然后通过 usermod -aG sudo admin_user 授予其 sudo 权限。将您的公钥放入

/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>

如果使用基于 nftables 的 proxmox-firewall 服务,语法可能有所不同。请确认该规则已启用。

5. 考虑更改默认端口。在编辑 sshd_config 中的 端口 2222 后,若启用了 SELinux 或 AppArmor,请相应更新其上下文。对于 SELinux,请执行:semanage port -a -t ssh_port_t -p tcp 2222。重新加载策略,并调整防火墙以允许该新端口。

6. 安装 Fail2Ban 以防止暴力破解攻击。在基于 Debian 的 Proxmox 系统上:

apt updateapt install fail2ban

7. 为 SSH 创建防护规则:在 /etc/fail2ban/jail.local 中:

[sshd]enabled = trueport = 2222filter = sshdlogpath = /var/log/auth.logmaxretry = 5bantime = 3600

8. 重启:systemctl restart fail2ban。使用fail2ban-client status sshd监控被封禁的IP地址。

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 permitrootgrep -i allowusers /etc/ssh/sshd_config

确保设置与策略一致。使用配置管理工具以保证各节点间的一致性。

如何通过SSH登录Proxmox虚拟机?

1. 确保虚拟机已安装并运行SSH服务器。大多数Linux模板默认包含OpenSSH。若未安装,请执行:apt install openssh-server 或相应命令。选择网络模式:**桥接(Bridged)**、**路由(Routed)** 或启用端口转发的 **NAT**。桥接模式下,虚拟机通过vmbr0在局域网中获取IP地址;路由模式下,需为其分配一个路由子网或使用VLAN;NAT模式下,则需在宿主机上配置端口转发:

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. 验证虚拟机防火墙。如果该虚拟机已启用 Proxmox VE 防火墙:请临时禁用,命令为 qm set <VMID> --firewall 0,或添加允许 SSH 的规则。在虚拟机内部,运行 ufw statusiptables -L 进行检查,确保端口 22 已开放。

4. 使用 QEMU 代理获取内部信息:如果已安装,请运行:

qm guest exec <VMID> -- ip addr

此操作可在不登录虚拟机的情况下显示其 IP 地址。请确保客户机中代理程序正在运行。

5. 对于 root 登录,请考虑在虚拟机中禁用直接 root 登录,改用具备 sudo 权限的非 root 用户。SSH 密钥的添加方式类似,可使用 ssh-copy-id user@vm_ip 命令。若虚拟机位于 NAT 后方,请确保主机上的端口转发已正确配置,且网络防火墙允许相应流量通过;若采用路由模式,请确认路由设置与防火墙规则均配置正确。

6. 调试 SSH 连接失败:在客户端主机上运行 nc -zv proxmox_ip 2223telnet proxmox_ip 2223。在虚拟机中:检查 systemctl status sshd,查看 /var/log/auth.log 或运行 journalctl -u sshd。根据需要调整防火墙或网络设置。

如何在 Proxmox VE 上设置 SSH 远程访问?

1. 首先,确保主机防火墙允许 SSH 端口。在 Proxmox VE 防火墙中:为来自可信子网或 IP 的 SSH 添加一条 ACCEPT 规则。例如:

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

2. 若使用,需同时应用于 IPv4 和 IPv6。对于外部防火墙,仅允许来自已知地址的选定端口通信。

3. 限制 SSH 访问:在 sshd_config 中使用 AllowUsers admin_user@203.0.113.* 或类似配置,以限制登录来源。仅启用密钥认证:PasswordAuthentication no。随后重新加载 SSH 服务。

4. 更改默认端口。编辑 端口 2222。重新加载 SSH 服务:systemctl reload sshd。更新防火墙规则以允许新端口。若启用了 SELinux,请使用 semanage port -a -t ssh_port_t -p tcp 2222 命令添加端口上下文。对于 AppArmor,请确保不存在冲突的配置文件。

5. 为集群节点配置免密码 SSH 密钥。在每个节点上执行:

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

6. 重复上述操作,使每个节点均可无需密码通过 SSH 登录其他节点。使用 ssh node2 pvecm status 命令进行验证。此配置有助于实现虚拟机热迁移、数据复制及脚本自动化。

7. 如有需要,使用跳转主机:从管理工作站出发:

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

此举可确保直接暴露。请持续加固并监控堡垒主机。

8. 启用日志记录和监控。检查 /var/log/auth.log 中的 SSH 事件。与 SIEM 系统或日志收集工具集成。定期轮转日志,并为重复失败事件设置告警。使用 Fail2Ban 封禁攻击者。定期通过 sshd -T 审计 /etc/ssh/sshd_config 文件。在 CI/CD 流水线中自动化执行此类检查。

解决 SSH 配置相关的连接问题

1. 如果 SSH 端口看似关闭:在宿主机上运行 ss -tuln | grep 2222 进行测试;从远程主机执行 nc -zv proxmox_ip 2222。若超时,请检查防火墙设置;若显示“连接被拒绝”,请确认 sshd 服务已启用:systemctl status sshd,并检查审计日志中是否存在 SELinux 或 AppArmor 的拒绝记录。

2. 如果主机无法通过 SSH 访问但图形界面(GUI)正常工作,请检查网络接口和路由: ip addr, ip route。如果图形界面(GUI)无法访问但 SSH 正常工作,请检查 systemctl status pveproxyss -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 statusssh node2 hostname。检查 主机密钥;当 IP 地址发生变化时,请替换 ~/.ssh/known_hosts 中过期的条目。

Proxmox SSH 的更多信息

按照上述分步指南操作,您可以保障 SSH 访问的安全性。但您还需要为 Proxmox 制定可靠的备份方案。Vinchin 备份与恢复 是面向 Proxmox 的最佳企业级解决方案。

  • 支持完整虚拟机备份和增量虚拟机备份。

  • 它采用重复数据删除和压缩技术来节省存储空间。

  • 它提供计划备份和设置保留策略。

  • 它可无缝集成 Proxmox 以及 VMware Hyper-V 等其他虚拟机。

  • 无需安装代理即可为虚拟机创建备份任务。

  • 它还可验证备份并提供快速恢复功能。

  • 它还支持异地复制和数据加密,以保障数据安全,始终确保业务连续性并简化恢复流程。

  • 它还支持在受支持的虚拟平台之间无缝进行虚拟机到虚拟机(V2V)迁移,确保数据传输灵活便捷。


Vinchin 网页控制台操作直观。备份 Proxmox 虚拟机的步骤如下:

步骤 1:首先,选择您要备份的 Proxmox 虚拟机。

选择要备份的 Proxmox 虚拟机

步骤 2:接下来,在您的环境中选择备份存储。

选择备份存储位置

步骤 3:然后配置备份策略。

配置备份策略

步骤 4:最后,提交任务。

提交工作

Vinchin 服务全球客户,并获得高度评价。立即享受15天全功能免费试用,亲身体验其如何契合您的工作流程。下载安装程序,轻松部署,即刻开始保护您的虚拟机。

下载按钮

下载免费试用版

适用于多种数据备份

* 15天全功能免费安全下载

Proxmox 启用 SSH 常见问题解答

问题1:当 Proxmox 图形界面不可用时,如何测试 SSH 连通性?

从受信任的主机使用 ssh admin_user@proxmox_ip -p 2222 ;确认端口已开放且 SSH 服务正在运行。

问题2:如何在 Proxmox 上强化 SSH 安全性?

禁用 root 用户登录(PermitRootLogin no),强制使用密钥认证(PasswordAuthentication no),限制源 IP 地址(防火墙/AllowUsers),修改 SSH 端口(Port 2222),并安装 Fail2Ban。

Q3:如何通过SSH连接到位于NAT之后的虚拟机?

设置主机端口转发或使用VPN:iptables -t nat -A PREROUTING -p tcp --dport 2223 -j DNAT --to-destination <VM_IP>:22,然后运行 ssh user@host_ip -p 2223

第四季度问题:Proxmox 防火墙是否会影响 SSH 访问?

是的。如果启用了 Proxmox 防火墙,则必须允许 SSH 端口(通常是 TCP 22)的入站流量。

结论

SSH 对于稳健的 Proxmox 管理至关重要。应通过基于密钥的身份验证、防火墙规则、最小权限原则及定期审计来保障其安全性。将 SSH 配置集成至自动化工作流与备份策略中,以确保快速恢复能力。在各节点间保持配置一致性,并持续监控访问日志。Vinchin 通过在多种环境中提供企业级虚拟机保护,进一步增强 SSH 运维能力。无论操作前后,立即试用,尽享顶级数据安全防护。

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆

您可能感兴趣的新闻 换一批

现在下载,可享15天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

微信售后服务二维码

请拨打电话
为您提供支持

400-9955-698