使用 Yubikey 在 Windows 和 macOS 下提供 SSH 私钥
看本文之前,你应该已经会使用 Yubikey 官方的工具来创建 PIV 和 gpg-key。
Windows
根据 该教程 执行操作。
创建好 PIV 后,右键 WinCryptSSHAgent 托盘图标,点击 Show Public Keys,并把其添加到 Github 中。
根据你使用的环境,可以把对应的 Settings 添加到你的配置文件中。
** 可以把 SSH_AUTH_SOCK 加到系统的环境变量中,这样在 VSCode 里面也可以使用 **
可以把 WinCryptSSHAgent 添加到 shell:startup 目录下,以便做到开机自启动。
最后可以通过 ssh -T [email protected]
检查是否生效。
macOS
macOS 无法使用 PIV 来生成 ssh-key,应该使用 gpg-agent 和 pinentry-mac 来实现。
首先,通过 brew 来安装 brew install gnupg pinentry-mac
。
其次,确保你已经在 yubikey 中生成了 gpg 并把公钥导入到了本地,可以通过 gpg -K
来查看。
然后,在你的 .zshrc 中添加如下两行。
1 | export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) |
在 ~/.gnupg/gpg-agent.conf 中添加如下几行。
1 | pinentry-program /opt/homebrew/bin/pinentry-mac # 改成你自己的位置 |
最后,通过 ssh-add -L
来查看是否生效。
如果遇到问题,使用 gpg-connect-agent /bye
来重新连接 gpg-agent。