跳转到内容
搜索 RHEL 文档

    浏览当前文档目录

    RHEL 订阅注册:register、unregister 与 clean

    注册 RHEL 不是“登录一下”:它要在红帽侧建立一个 system identity,并把 entitlement 映射到这台机器。本页按生命周期讲:注册、核对、注销、清理、再注册。

    在 PVE 390 rhel10-lab(RHEL 10.2 x86_64)上实际执行:

    Terminal window
    sudo subscription-manager status
    sudo subscription-manager unregister
    sudo subscription-manager status
    sudo subscription-manager clean
    set -a; . /root/.rhsm-env; set +a
    sudo subscription-manager register \
    --org "$RHSM_ORG_ID" --activationkey "$RHSM_ACTIVATION_KEY"
    sudo subscription-manager status
    sudo subscription-manager identity
    sudo subscription-manager repos --list-enabled

    E3 记录:plans/content-expansion/evidence/rhel/rhel-subscription-register/run.json(9 步;命令里用变量,证据不含密钥)。

    要素从哪来常见错误
    账号/订阅开发者项目或组织订阅把“能登录下载”当成“有 entitlement”
    Org ID红帽控制台账户信息,数字拿组织 UUID 当 Org ID → 401
    Activation Key控制台 Activation Keys 页面把 key 名称当成密码;或拿用户名密码混用

    把凭据放进 root 可读的 env 文件(权限 600),脚本里只引用变量:

    /root/.rhsm-env
    RHSM_ORG_ID=1234567
    RHSM_ACTIVATION_KEY=your-key-name
    set -a; . /root/.rhsm-env; set +a
    sudo 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:不需要在每台机器上交互输入密码,也不把账号密码写进脚本。

    $ sudo subscription-manager status
    Overall Status: Registered
    $ sudo subscription-manager identity
    system identity: <uuid>
    name: rhel10-lab
    org name: &lt;org&gt;
    org ID: <org-id>
    $ sudo subscription-manager repos --list-enabled
    Repo ID: rhel-10-for-x86_64-baseos-rpms
    Repo ID: rhel-10-for-x86_64-appstream-rpms

    只看 status 不够:identity 证明“注册到哪个 org”,repos 证明“内容真的可用”。三者任一不对,先别装包。

    Terminal window
    sudo subscription-manager unregister
    sudo subscription-manager status # Overall Status: Unknown
    sudo subscription-manager clean # 清本地身份/订阅数据

    unregister 通知服务端移除这台系统;clean 清本地 /etc/pki/consumer、/etc/pki/entitlement 等状态。克隆前必须做,否则克隆体和源机共用同一个 system identity,红帽侧会把它们当成一台机器,订阅计数与支持工单都会错乱。

    重装后重新注册即可,不需要重新生成 key(除非 key 已被撤销)。

    现象大概率原因处置
    Organization … does not exist (401)Org ID 写成 UUID/错号用控制台的数字 Org ID
    Name or service not knownDNS 或默认路由不对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/不进截图。
    • 未测试 HTTP 代理/离线 Satellite 注册;
    • 未测试用户名/密码 + 2FA 的交互注册;
    • 未测试 subscription-manager clean 对已安装包/仓库文件的影响范围(只验证了身份与再注册);
    • 未测试组织内 25 份 entitlement 的上限行为。

    以下截图来自 PVE 上的 RHEL 10.2 实测环境。

    subscription-manager status:未注册基线
    subscription-manager status:未注册基线