• 配置 HMAC-SHA1 Challenge-Response 验证
    • 通过 ykpersonalize 工具
    • 使用 Yubikey 设置 Tool
    • 生成初始 challenge
    • 启用 Challenge-Response 验证模块

    配置 HMAC-SHA1 Challenge-Response 验证

    第一步是为验证设置你的 Yubikey,可以通过 Yubikey 设置工具 或 ykpersonalize 命令行工具完成。

    通过 ykpersonalize 工具

    从安装 ykpers 开始:

    1. brew install ykpers

    然后:

    1. ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -ochal-btn-trig

    基本含义为:

    • 使用 2 号插槽 (-2)
    • 使用 challenge-response 模式(-ochal-resp
    • 生成 HMAC-SHA1 challenge 响应(-ochal-hmac
    • 在小于 64 字节的输入集上计算 HMAC(-ohmac-lt64
    • 允许通过 API 调用读取这个 Yubikey 的序列号(-oserial-api-visible)。 -
    使用 Yubikey 设置 Tool
    1. 插入你的 Yubikey
    2. 点击 Challenge-Response
    3. 选择 HMAC-SHA1 模式
    4. 选择 Configuration Slot 2
    5. 选择 Require user input (button press)
    6. 设置 Variable input 为 HMAC-SHA1 模式
    7. 点击 Write Configuration 不要写入任何日志,因为这会暴露写入到 Yubikey 中的私钥。
    生成初始 challenge

    安装 pam_yubico:

    1. brew install pam_yubico
    2. mkdir -m0700 -p ~/.yubico

    生成初始 Challenge 请求:

    1. ykpamcfg -2
    启用 Challenge-Response 验证模块

    为了避免被 sudo 锁定确定 pam_yubico.so 是否存在 :

    1. test -e /usr/local/opt/pam_yubico/lib/security/pam_yubico.so && echo "File exists, you may proceed."

    sudo 打开一个新的 shell(确保你在把 PAM 文件改坏以后还能改回来)。

    然后用另一个 shell 将下面一行添加到 /etc/pam.d/sudo 起始:

    1. auth required /usr/local/opt/pam_yubico/lib/security/pam_yubico.so mode=challenge-response

    开启一个新的 shell ,确认你在运行相应的命令时需要 Yubikey 操作:

    1. sudo -l

    记住你要按 Yubikey 两次————一次用于验证现有的 challenge ,一次用于在成功以后生成新的 challenge。