创建 Yubikey PAM 验证策略

获取 YubiKey 的令牌 ID

Yubikey 令牌 ID 是唯一标识 YubiKey 的公共标识符。您可以通过多种方式获取 Yubikey 令牌ID。

最简单的方法是移除 Yubikey 生成的一次性密码的最后 32 位:

  1. 打开一个终端.
  2. 长按 Yubikey.
  3. 一个一次性密码会输入到终端中:
  1. cccccccgklgcvnkcvnnegrnhgrjkhlkfhdkclfncvlgj
  2. bash: cccccccgklgcvnkcvnnegrnhgrjkhlkfhdkclfncvlgj: command not found

相应的令牌 ID 是 cccccccgklgc:

  1. cccccccgklgcvnkcvnnegrnhgrjkhlkfhdkclfncvlgj
  2. ┊← →┊┊← 32 →┊

如果你有兴趣试试其他的方法的话,你可以激活本地 Yubikey PAM 模块中的调试模式然后使用它,这会将 ID 输出到调试信息中。也有一个输入令牌的 https://demo.yubico.com/modhex.php 选择 OTP 作为输入模式,令牌 ID 会输出到 Modhex encoded 变量中。

创建系统级别的 Yubikey 用户映射

创建 /etc/yubikeys , 它必须包含远程服务器上的 UNIX 用户名和它们的 Yubikey 令牌 ID,如果一个用户有多个 Yubikey 令牌 ID 的话可用冒号分割隔开,例如:

  1. <user-1>:<yubikey-id-1>
  2. <user-2>:<yubikey-id-1>
  3. <user-3>:<yubikey-id-2>:<yubikey-id-3>

所以在这个例子中,我们为两个不同的用户设置相同的令牌 ID:

  1. root:cccccccgklgc
  2. foobar:cccccccgklgc

然后设置正确的权限:

  1. chmod 644 /etc/yubikeys
使用用户独立的 Yubikey 用户映射

也可以为每个用户设置独立的映射文件,在这种情况下需要移除 authfile 指示 。

首先在主文件夹下建立 .yubico 目录:

  1. mkdir -m700 /home/<user>/.yubico

然后将映射添加到 /home/<user>/.yubico/authorized_yubikeys:

  1. <user>:<yubikey-id-1>