记一次RD350X使用ipmitool重置BMC账号密码
前言
继昨天排查耗电情况后,CPU供电90多瓦,总电源200多瓦,剩下的不知道耗在哪里,故再次打算登录BMC控制台查看情况。
但是服务器买回来后BMC就没登录成功过,这用户名密码我也不知道...
使用联想的 BMC_reset 工具也可以重置,但是要重启进入DOS环境,而我不想影响服务运行
查找一番之后,打算来尝试以下 ipmitool
开始
安装ipmitool
我的是PVE系统(Debian),直接使用下面的命令安装
apt install ipmitool
装好后检查内核模块是否启用
root@pve:~/ipmitool-1.8.18# lsmod | grep ipmi
ipmi_ssif 36864 0
acpi_ipmi 20480 0
ipmi_si 73728 1
ipmi_devintf 20480 0
ipmi_msghandler 122880 4 ipmi_devintf,ipmi_si,acpi_ipmi,ipmi_ssif
可以看到关键的几个模块 ipmi_si
、ipmi_devintf
和ipmi_msghandler
都起来了。如果没起来的话用modprobe 模块名
手动加载一下。
用户相关操作
ipmitool user <commands>
User Commands:
summary [<channel number>]
list [<channel number>]
set name <user id> <username>
set password <user id> [<password> <16|20>]
disable <user id>
enable <user id>
priv <user id> <privilege level> [<channel number>]
Privilege levels:
* 0x1 - Callback
* 0x2 - User
* 0x3 - Operator
* 0x4 - Administrator
* 0x5 - OEM Proprietary
* 0xF - No Access
列出用户
列出channel 1的用户
root@pve:~# ipmitool user list 1
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
1 false false true ADMINISTRATOR
2 true false false NO ACCESS
3 true false false NO ACCESS
4 true false false NO ACCESS
5 true false false NO ACCESS
6 true false false NO ACCESS
7 true false false NO ACCESS
8 true false false NO ACCESS
9 true false false NO ACCESS
10 true false false NO ACCESS
修改用户名密码
# 修改用户名
ipmitool user set name <用户ID> <用户名>
# 修改密码
ipmitool user set password <用户ID> <密码>
启用账户
ipmitool user enable <用户ID>
设置用户权限
权限级别可以看上面的帮助信息,一般设置为4
就是Administrator
。
ipmitool user privilege <用户ID> <权限级别> <channel_id>
设置通道访问控制
ipmitool channel setaccess <channel_id> <用户> link=<on|off> ipmi=<on|off> callin=<on|off> privilege=<权限级别>
实践
由于我这里1号用户无法查看与修改用户名,我也不知道用户名是什么,故打算配置并启用2号用户。
设置用户名和密码
设置2号用户名为user
密码为password
并启用。
ipmitool user set name 2 user
ipmitool user set password 2 password
ipmitool user enable 2
设置2号用户为管理员
ipmitool user privilege 2 4 1
但是我执行这条命令会报错,先跳过。下一步也可以设置权限。
root@pve:~# ipmitool user privilege 2 4 1
IPMI command failed: Invalid data field in request
Set Privilege Level command failed (user 2)
设置通道访问控制
这里可以多尝试几个通道,我刚开始只设置了通道1,结果无法登录Web控制台,提示无权限用户。
几个通道都设置后,就可以正常登录Web控制台了。
ipmitool channel setaccess 1 2 link=on ipmi=on callin=on privilege=4
ipmitool channel setaccess 2 2 link=on ipmi=on callin=on privilege=4
ipmitool channel setaccess 3 2 link=on ipmi=on callin=on privilege=4
ipmitool channel setaccess 4 2 link=on ipmi=on callin=on privilege=4