Как настроить SSH/PuTTY для использования аутентификации Yubikey OpenPGP?
Я хотел бы использовать интерфейс 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.
0 ответов
У меня была та же проблема, что и описанная выше, с моим YubiKey 5 NFC. Кажется, что замазка не может прочитать файл конфигурации или публикации.
Изменение домашнего каталога для gpg из %APPDATA%\gnupg\
в %HOMEPATH%\gnupg\
решил проблему на моей Windows 10.
Для проверки домашнего каталога для gpg вы можете поставить: gpg --version
в командной оболочке. Для изменения домашнего каталога вы можете создать переменную окружения GNUPGHOME
с новым домашним каталогом
Есть два способа сделать это:
- Использование YubiKey для хранения ключа аутентификации SSH для аутентификации на серверах SSH
- Этот метод поддерживает только ключи RSA и должен храниться в слоте аутентификации [A]
- Этот метод не требует поддержки PAM сервера / клиента SSH
- Использование PuTTY-CAC для аутентификации с использованием сертификата PKCS11
- Конфигурация Yubico: PKCS11
- Конфигурация PuTTY-CAC: Соединение> SSH > Сертификат
Я написал руководство по использованию Yubikeys с ключами PGP через SSH для входа в Linux из Windows, надеюсь, это поможет кому-нибудь так же запутавшемуся, как и я: https://horugame.com/sign-in-to-linux-from-windows-via-yubikey/