Уже наверное полгода у меня есть YubiKey 5C NFC. Пользуюсь им как аппаратным ключом и для получения OTP паролей, и только сейчас дошли руки разобраться что там по работе с SSH.
А все оказалось достаточно просто. Вот эта команда позволяет сгенерировать SSH ключ, который будет связан с ключом, который существует внутри YubiKey:
⚠️
Для работы такого ключа нужен OpenSSH версии 8.2 и выше как на сервере, так и на вашем ПК
ssh-keygen -t ed25519-sk -O resident -O application=ssh:key_name -f ~/.ssh/key_name
Все как с обычными SSH ключами, появится 2 файла в папке ssh key_name
и key_name.pub
. Только вот, воспользоваться секретным ключом без подключения YubiKey не выйдет,
Если использовать флаг -O verify-required
также нужно будет ввести пароль от YubiKey.
⚠️
В интернете полно гайдов, как использовать GPG агент вместо SSH, когда у вас вместо ssh ключа будут ключи gpg. Но эти настройки выглядит как костыли.
Такой ключ подойдет и для доступа к репозиториям. Но необходимо будет прописать в ~/.ssh/config
информацию о том, какой ключ использовать:
Host github.com
Hostname github.com
IdentityFile ~/.ssh/github
IdentitiesOnly yes