Я хотел бы использовать интерфейс OpenPGP моего Yubikey для аутентификации на моем сервере OpenSSH на моем компьютере с Windows 10, как показано здесь.
Я создал ключи в соответствии с документацией.
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
Теперь черная дыра поднимается. Как упомянуто в демонстрационной документации, PuTTY должен работать прямо из коробки. Год правильно, я думал, но я попробовал. Конечно, это не будет работать, так как сервер OpenSSH не знает открытую часть ключа аутентификации. Какой сюрприз
Однако я извлек требуемый отпечаток, совместимый с OpenSSH, чтобы поместить в .ssh/authorized_keys
:
gpg --export-ssh-key BEEFBEEFBEEFBEEFBEEFBEEFBEEFBEEFBEEF0003
В результате мы получили OpenSSH-совместимый отпечаток со следующим комментарием:
ssh-rsa [...omitted...] openpgp:0xBEEF0003
Я заново установил Yubikey, перезапустил gpg-agent и повторил попытку входа на мой сервер OpenSSH. Это также не сработало.
Поэтому я снова погуглил и нашел другой учебник по использованию Yubikey в качестве аутентификации SSH.
Я настроил способ, которым McQueen Labs рекомендует это, но это также не сработало для меня.
Там, где нет никаких подсказок для пин-кода карты или сообщений об ошибках, кроме No supported authentication methods available (server sent: publickey)
.
Это заставляет меня думать, что либо аутентификация SSH такого типа не выполняется методом publickey (что я считаю менее вероятным), либо отсутствует конфигурация.
В связи с этим возникает вопрос: как настроить PuTTY для использования аутентификации Yubikey OpenPGP? А что настраивать на стороне сервера.
Изменить: Интерфейс Yubikey OpenPGP хорошо работает с коммитами Git и т.д. Но я не могу использовать его для аутентификации SSH.