外观
用户与权限
装完 PVE 之后所有人都用 root@pam,这在只有你一个人用的时候没问题。一旦有第二个人、或者你要写脚本调 API,就该把权限拆开了。
权限模型:四个概念
PVE 的权限是「谁 在 哪个路径 上有 什么角色」的组合。
| 概念 | 说明 |
|---|---|
| 认证域 (Realm) | 用户从哪儿来。pam 是 Linux 系统用户,pve 是 PVE 自己管理的用户,还可以接 LDAP / AD / OpenID |
| 用户 / 组 | alice@pve 这样的标识。把用户放进组,权限给组 |
| 角色 (Role) | 一组权限的集合。内置的有 PVEVMAdmin、PVEDatastoreUser 等,也可以自定义 |
| 路径 (Path) | 权限作用的范围,例如 /vms/100、/storage/local、/(全局) |
权限条目长这样:在 /vms/100 上,给 alice@pve 角色 PVEVMAdmin。
权限给组,不给个人
即使现在只有一个用户,也建议建组(比如 vm-operators),权限授予组,再把用户放进去。以后加人只要加进组,不用重新配一遍权限。
三件现在就能做的事
1. 给日常操作建一个非 root 用户
数据中心 → 权限 → 用户 → 添加,认证域选 Proxmox VE authentication server (pve)。
然后在 数据中心 → 权限 → 添加 → 用户权限 里,给它需要的路径和角色。
root@pam 不要日常使用
root 的权限包括「删掉所有东西」。日常操作用受限账号,能把「手滑删错客户机」的后果限制在一个可控范围内。
2. 给脚本用 API Token,不要用 root 密码
数据中心 → 权限 → API Tokens → 添加。
Token 的好处:
- 可以单独撤销,不影响用户密码。
- 可以设置到期时间。
- 可以有比用户本身更小的权限范围(取消勾选
Privilege Separation才会继承用户权限,建议保持勾选并单独授权)。
Token Secret 只显示一次
创建后弹出的 Secret 关掉就再也看不到了。立刻存进密码管理器。丢了只能删掉重建。
不要把 Token 写进会提交到 Git 的文件里。
3. 开启两步验证
数据中心 → 权限 → 两步验证,或者用户自己在右上角菜单里设置。
支持 TOTP(手机验证器 App)、WebAuthn(硬件密钥)和恢复码。
恢复码要存在别的地方
开启 TOTP 时生成的恢复码,是手机丢了之后唯一的退路。打印出来或存在另一个设备上,不要和验证器 App 放在同一台手机里。
本章文章
- 认证域:PAM、PVE、LDAP/AD 与 OpenID Connect:用户从哪儿来,什么时候该接入 LDAP/AD 或企业 SSO。
- 用户、组、角色与权限路径:权限模型的四个概念,以及实际分配权限的步骤。
- API Token 与最小权限:给脚本和自动化用可撤销、可限权的凭证,而不是账号密码。
- 开启双因素认证:TOTP、WebAuthn 与恢复码,以及被锁在门外时怎么办。
- 宿主机加固:SSH、证书与管理端口:收紧 SSH 登录方式、给 Web UI 换可信证书、限制管理端口来源。
- 安全地远程访问:WireGuard、Tailscale 与反向代理:从外网访问 PVE 的三种方式,都不需要直接暴露管理端口。
完成标准
日常操作不再直接用 root@pam;脚本用的是有限权限的 API Token;root 账号开启了两步验证。