GPG 无法签名数据

如果当你在对 tag 或者 commit 签名时遇到以下提示:

  1. error: gpg failed to sign the data
  2. error: unable to sign the tag

首先,物理插拔一下 Yubikey 并确保安全卡状态可以被正确的列出:

  1. gpg --card-status

如果你看到:

  1. PIN retry counter : 0 0 3

这意味着你的正常 PIN 码因为输错次数太多而被锁定。第三个数字表示的是管理员 PIN 码的重试计数器。

通过输入管理员 PIN 码来解锁正常 PIN 码:

  1. gpg --card-edit
  2. gpg/card> admin
  3. Admin commands are allowed
  4. gpg/card> passwd
  5. gpg: OpenPGP card no. detected
  6. 1 - change PIN
  7. 2 - unblock PIN
  8. 3 - change Admin PIN
  9. 4 - set the Reset Code
  10. Q - quit
  11. Your selection? 2
  12. PIN unblocked and new PIN set.
  13. 1 - change PIN
  14. 2 - unblock PIN
  15. 3 - change Admin PIN
  16. 4 - set the Reset Code
  17. Q - quit
  18. Your selection? q