我想使用 YubiKey 的 OpenPGP 接口来认证我自己在 Windows 10 上针对我的 OpenSSH 服务器进行测试:
- 我根据以下创建了密钥这:
gpg --card-status Reader ...........: Yubico Yubikey 4 OTP U2F CCID 0 Application ID ...: BEEFBEEFBEEFBEEFBEEFBEEF99990000 Version ..........: 2.1 Manufacturer .....: Yubico Serial number ....: 99999999 Name of cardholder: John Doe Language prefs ...: en Sex ..............: male URL of public key : https://example.com/pgp.asc Login data .......: johndoe Signature PIN ....: required Key attributes ...: rsa4096 rsa4096 rsa4096 Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 39 Signature key ....: BEEF BEEF BEEF BEEF BEEF BEEF BEEF BEEF BEEF 0001 created ....: 2017-11-20 00:00:01 Encryption key....: BEEF BEEF BEEF BEEF BEEF BEEF BEEF BEEF BEEF 0002 created ....: 2017-11-20 00:00:02 Authentication key: BEEF BEEF BEEF BEEF BEEF BEEF BEEF BEEF BEEF 0003 created ....: 2017-11-20 00:00:03 General key info..: pub rsa4096/BEEFBEEFBEEF0001 2017-11-20 John Doe <[email protected]> sec> rsa4096/BEEFBEEFBEEF0001 created: 2017-11-20 expires: never Cardnumber:BEEF BEEF9999 ssb> rsa4096/BEEFBEEFBEEF0002 created: 2017-11-20 expires: never Cardnumber:BEEF BEEF9999 ssb> rsa4096/BEEFBEEFBEEF0003 created: 2017-11-20 expires: never Cardnumber:BEEF BEEF9999
- PuTTY 应该按照文档,因为我提取了公钥[如下],重新插入了YubiKey,然后重新启动
gpg-agent
,但是SSH登录失败:gpg --export-ssh-key BEEF0003 ssh-rsa [...] openpgp:0xBEEF0003
我找到了另一个教程关于如何使用 YubiKey 进行 SSH 身份验证,以及如何按照 McQueen Labs 的方式进行设置推荐,但这也不起作用:
- 没有提示输入卡密码,这让我认为这种 SSH 身份验证不是通过 PKE 完成的 [不太可能],或者缺少配置选项,因为我收到了错误:
No supported authentication methods available (server sent: publickey)
如何设置 PuTTY 以使用 YubiKey OpenPGP 身份验证,以及在服务器端进行什么配置?
答案1
我的 YubiKey 5 NFC 也遇到了同样的问题,似乎 PuTTY 无法读取配置或pubring
文件:
- 更改 Windows 10 上的主目录
gpg
解决了问题:
从:%APPDATA%\gnupg\
到:%HOMEPATH%\gnupg\
- 检查
gpg
主目录:gpg --version
- 更改主目录:
GNUPGHOME
在新的主目录中创建环境变量
- 检查
答案2
我写了一个关于使用 Yubikeys 和 PGP 密钥通过 SSH 从 Windows 登录 Linux 的教程,希望它能帮助那些和我一样困惑的人:https://horugame.com/sign-in-to-linux-from-windows-via-yubikey/