2.9. 更改节点访问的核心用户密码
默认情况下,Red Hat Enterprise Linux CoreOS (RHCOS) 在集群的节点上创建一个名为 core
的用户。您可以使用 core
用户通过云供应商串口控制台或裸机基板管理控制器管理器 (BMC) 访问节点。例如,如果节点停机且您无法使用 SSH 或 oc debug node
命令访问该节点,这非常有用。但是,默认情况下,此用户没有密码,因此您无法在不创建密码的情况下登录。
您可以使用机器配置为 core
用户创建密码。Machine Config Operator (MCO) 分配密码并将密码注入 /etc/shadow
文件中,允许您使用 core
用户登录。MCO 不会检查密码哈希。因此,如果密码出现问题,MCO 无法报告。
- 密码只能通过云供应商串口控制台或 BMC 正常工作。它不适用于 SSH。
-
如果您有包含
/etc/shadow
文件或 systemd 单元的机器配置,则优先于密码哈希。
您可以通过编辑用于创建密码的机器配置来更改密码。另外,您可以通过删除机器配置来删除密码。删除机器配置不会删除用户帐户。
流程
使用您的操作系统支持的工具,创建一个哈希密码。例如,通过运行以下命令,使用
mkpasswd
创建哈希密码:$ mkpasswd -m SHA-512 testpass
输出示例
$ $6$CBZwA6s6AVFOtiZe$aUKDWpthhJEyR3nnhM02NM1sKCpHn9XN.NPrJNQ3HYewioaorpwL3mKGLxvW0AOb4pJxqoqP4nFX77y0p00.8.
创建包含
core
用户名和散列密码的机器配置文件:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: set-core-user-password spec: config: ignition: version: 3.2.0 passwd: users: - name: core 1 passwordHash: <password> 2
运行以下命令来创建机器配置:
$ oc create -f <file-name>.yaml
节点不会重启,并在几分钟内可用。您可以使用
oc get mcp
来监控要更新的机器配置池,如下例所示:NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-d686a3ffc8fdec47280afec446fce8dd True False False 3 3 3 0 64m worker rendered-worker-4605605a5b1f9de1d061e9d350f251e5 False True False 3 0 0 0 64m
验证
节点返回
UPDATED=True
状态后,运行以下命令为节点启动 debug 会话:$ oc debug node/<node_name>
运行以下命令,将
/host
设置为 debug shell 中的根目录:sh-4.4# chroot /host
检查
/etc/shadow
文件的内容:输出示例
... core:$6$2sE/010goDuRSxxv$o18K52wor.wIwZp:19418:0:99999:7::: ...
哈希密码分配给
core
用户。