Аппаратный ключ YubiKey и SSH

· 1 минута на чтение

Уже наверное полгода у меня есть 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

Дополнительный материал

Struchkov Mark
Struchkov Mark
Задавайте вопросы, если что-то осталось не понятным👇