• Yubikey 验证模块
    • 在 YubiCloud 上创建一个 API
    • 创建 Yubikey 验证模块
    • 修改 common-auth authentication 模块

    Yubikey 验证模块

    在 YubiCloud 上创建一个 API

    从 Yubico 获得一个 API 密钥,应用程序、上下文和服务器各需要一个 client id。

    输入你的邮件地址 ,选择 Yubikey OTP 输入后触摸 Yubikey,你会获得这样的一组字符串:

    1. Client ID: <clientId>
    2. Secret Key: <secretKey>

    把它们保存在一个安全的地方以备接下来使用(比如一个密码管理器内)

    创建 Yubikey 验证模块

    在系统级别的映射设置完毕和生成了 API 凭据以后,新建 /etc/pam.d/yubikey-auth,加入下面的内容:

    1. # Enable YubiCloud OTP Validation (implicitly includes `mode=client` and the default validation `urllist`).
    2. auth required pam_yubico.so id=<clientId> key=<secretKey> authfile=/etc/yubikeys

    要启用调试模式的话,创建日志文件然后加入相应的参数(debug and debug_file)到 pam_yubico.so 中:

    1. touch /var/log/yubikey-auth.log
    2. chmod go+w /var/log/yubikey-auth.log

    修改 /etc/pam.d/yubikey-auth 文件:

    1. auth required pam_yubico.so id=<clientId> key=<secretKey> authfile=/etc/yubikeys debug debug_file=/var/log/yubikey-auth.log

    当不需要调试时记得移除它们。

    修改 common-auth authentication 模块

    /etc/pam.d/common-auth 中为 pam_unix.so 添加 try_first_pass 指示。但不是所有发行版都存在 common-auth 文件,你可能需要寻找其他有效文件的路径。

    当然别忘了包含刚刚创建的 Yubikey 验证模块:

    1. auth include yubikey-auth
    2. auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass