如何设置 SSH/PuTTY 以使用 Yubikey OpenPGP 身份验证?

bur*_*rsk 6 ssh authentication putty openpgp yubikey

我想使用 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 <john@example.com>
      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
    
    Run Code Online (Sandbox Code Playgroud)
  • PuTTY 应该按照文档工作,因为我提取了 [下面] 的公钥,重新插入了 YubiKey,然后重新启动gpg-agent,但是 SSH 登录失败:
    gpg --export-ssh-key BEEF0003
    
      ssh-rsa [...] openpgp:0xBEEF0003
    
    Run Code Online (Sandbox Code Playgroud)


我找到了另一个关于如何使用 YubiKey 进行 SSH 身份验证的教程,按照 McQueen Labs推荐的方式进行设置,但这也不起作用:

  • 没有提示输入卡密码,让我认为这种 SSH 身份验证不是通过 PKE [不太可能] 完成的,或者缺少配置选项,因为我收到错误:
    No supported authentication methods available (server sent: publickey)
    
    Run Code Online (Sandbox Code Playgroud)


如何设置 PuTTY 以使用 YubiKey OpenPGP 身份验证以及在服务器端配置什么?

小智 2

我的 YubiKey 5 NFC 也遇到同样的问题,PuTTY 似乎无法读取配置或pubring文件:

  • 在 Windows 10 上更改主目录gpg解决了问题:
    从:%APPDATA%\gnupg\到:%HOMEPATH%\gnupg\
    • 检查gpg主目录:gpg --version
    • 更改主目录:GNUPGHOME在新的主目录中创建环境变量