2.3.10. 使用 oathtool 命令为多因素身份验证创建 seed
要设置多因素身份验证(MFA),您必须创建一个 secret,供基于时间的一次性密码(TOTP)生成器和后端 MFA 系统使用。您可以使用 oathtool 生成十六进制的 seed 以及可选的 qrencode 来创建 QR 代码,将令牌导入到您的 MFA 设备。
先决条件
- Linux 系统。
- 访问命令行 shell.
-
root或sudo访问 Linux 系统。
流程
安装
oathtool软件包:[root@dev]# dnf install oathtool安装
qrencode软件包:[root@dev]# dnf install qrencode从
urandomLinux 设备文件中生成 30 个字符,并将其存储在 shell 变量SEED中:示例
[user@dev]$ SEED=$(head -10 /dev/urandom | sha512sum | cut -b 1-30)通过在
SEED变量中运行 echo 来打印 seed:示例
[user@dev]$ echo $SEED BA6GLJBJIKC3D7W7YFYXXAQ7将
SEED馈送到 oathtool 命令中:语法
oathtool -v -d6 $SEED示例
[user@dev]$ oathtool -v -d6 $SEED Hex secret: 083c65a4294285b1fedfc1717b821f Base32 secret: BA6GLJBJIKC3D7W7YFYXXAQ7 Digits: 6 Window size: 0 Start counter: 0x0 (0) 823182注意base32 secret 需要在您的 MFA 设备的 authenticator 应用程序中添加令牌。您可以使用 QR 代码将令牌导入到验证器应用程序,或使用 base32 机密手动添加它。
可选:创建一个 QR 代码镜像文件,将令牌添加到验证器中:
语法
qrencode -o /tmp/user.png 'otpauth://totp/TOTP_SERIAL?secret=_BASE32_SECRET'将
TOTP_SERIAL替换为代表(TOTP)令牌 ID 的字符串,并将BASE32_SECRET替换为 oathtool 生成的 Base32 secret。示例
[user@dev]$ qrencode -o /tmp/user.png 'otpauth://totp/MFAtest?secret=BA6GLJBJIKC3D7W7YFYXXAQ7'- 扫描生成的 QR 代码镜像文件,将令牌添加到 MFA 设备的验证器应用程序中。
-
使用
radowgw-admin命令为用户创建多因素身份验证 TOTP 令牌。