RHEL 订阅注册:register、unregister 与 clean
注册 RHEL 不是“登录一下”:它要在红帽侧建立一个 system identity,并把 entitlement 映射到这台机器。本页按生命周期讲:注册、核对、注销、清理、再注册。
在 PVE 390 rhel10-lab(RHEL 10.2 x86_64)上实际执行:
sudo subscription-manager statussudo subscription-manager unregistersudo subscription-manager statussudo subscription-manager cleanset -a; . /root/.rhsm-env; set +asudo subscription-manager register \ --org "$RHSM_ORG_ID" --activationkey "$RHSM_ACTIVATION_KEY"sudo subscription-manager statussudo subscription-manager identitysudo subscription-manager repos --list-enabledE3 记录:plans/content-expansion/evidence/rhel/rhel-subscription-register/run.json(9 步;命令里用变量,证据不含密钥)。
注册到底要哪三样东西
Section titled “注册到底要哪三样东西”| 要素 | 从哪来 | 常见错误 |
|---|---|---|
| 账号/订阅 | 开发者项目或组织订阅 | 把“能登录下载”当成“有 entitlement” |
| Org ID | 红帽控制台账户信息,数字 | 拿组织 UUID 当 Org ID → 401 |
| Activation Key | 控制台 Activation Keys 页面 | 把 key 名称当成密码;或拿用户名密码混用 |
把凭据放进 root 可读的 env 文件(权限 600),脚本里只引用变量:
RHSM_ORG_ID=1234567RHSM_ACTIVATION_KEY=your-key-name
set -a; . /root/.rhsm-env; set +asudo subscription-manager register \ --org "$RHSM_ORG_ID" --activationkey "$RHSM_ACTIVATION_KEY"成功输出:
The system has been registered with ID: <uuid>The registered system name is: rhel10-lab多机/自动化优先 Activation Key:不需要在每台机器上交互输入密码,也不把账号密码写进脚本。
注册后核对三件事
Section titled “注册后核对三件事”$ sudo subscription-manager statusOverall Status: Registered
$ sudo subscription-manager identitysystem identity: <uuid>name: rhel10-laborg name: <org>org ID: <org-id>
$ sudo subscription-manager repos --list-enabledRepo ID: rhel-10-for-x86_64-baseos-rpmsRepo ID: rhel-10-for-x86_64-appstream-rpms只看 status 不够:identity 证明“注册到哪个 org”,repos 证明“内容真的可用”。三者任一不对,先别装包。
重装/克隆前:unregister + clean
Section titled “重装/克隆前:unregister + clean”sudo subscription-manager unregistersudo subscription-manager status # Overall Status: Unknownsudo subscription-manager clean # 清本地身份/订阅数据unregister 通知服务端移除这台系统;clean 清本地 /etc/pki/consumer、/etc/pki/entitlement 等状态。克隆前必须做,否则克隆体和源机共用同一个 system identity,红帽侧会把它们当成一台机器,订阅计数与支持工单都会错乱。
重装后重新注册即可,不需要重新生成 key(除非 key 已被撤销)。
失败模式速查
Section titled “失败模式速查”| 现象 | 大概率原因 | 处置 |
|---|---|---|
Organization … does not exist (401) | Org ID 写成 UUID/错号 | 用控制台的数字 Org ID |
Name or service not known | DNS 或默认路由不对 | getent ahostsv4 subscription.rhsm.redhat.com;修 DNS/路由 |
curl 报证书错误但注册可用 | RHSM 用红帽私有 CA | 不要用 curl 的证书结果判断注册能力 |
This system is already registered | 已注册过 | 先 unregister,或直接 status 核对 |
注册成功但 repos 为空 | entitlement 未附加/仓库未启用 | 控制台核对订阅,subscription-manager repos --list |
- Org ID 是数字,不是 UUID;
- Activation Key 名称与 key 本身没混淆;
- 注册前 DNS/443 可达(
getent ahostsv4+dnf makecache验证); - 注册后 status/identity/repos 三项都核对;
- 克隆/重装前
unregister+clean; - 凭据文件 600,且不进 Git/不进截图。
未实测与边界
Section titled “未实测与边界”- 未测试 HTTP 代理/离线 Satellite 注册;
- 未测试用户名/密码 + 2FA 的交互注册;
- 未测试
subscription-manager clean对已安装包/仓库文件的影响范围(只验证了身份与再注册); - 未测试组织内 25 份 entitlement 的上限行为。
- RHEL 订阅注册与免费获取 — 档位与凭据选型
- RHEL 版本停留:release pin 与 EUS 仓库 — 注册后如何锁 minor
- RHEL 仓库与内容视图 — 仓库启用
- 官方:Configuring basic system settings
以下截图来自 PVE 上的 RHEL 10.2 实测环境。
