Bug 55694

Summary: Настройка OpenSSH доступа по Рутокен MFA
Product: Sisyphus Reporter: Сергей <it.kkx>
Component: opensshAssignee: Gleb F-Malinovskiy <glebfm>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: glebfm, glinkinvd, it.kkx, ldv, vt
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Сергей 2025-08-22 12:32:30 MSK
Пытаюсь настроить OpenSSH доступ по Рутокен MFA по инструкции https://dev.rutoken.ru/pages/viewpage.action?pageId=150241427.

Делаю по инструкции, но возникает ошибка:

# fido2-token -L
/dev/hidraw1: vendor=0x0a89, product=0x0093 (Aktiv Co. FIDO)

# ssh -V
OpenSSH_9.6p1, OpenSSL 3.3.3 11 Feb 2025

# ssh-keygen -t ecdsa-sk
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
ssh-sk-helper: No FIDO SecurityKeyProvider specified
ssh-keygen: Key enrollment failed: invalid format


С чем это связано и как исправить?
Операционная система: ALT Linux 11
Версия KDE Plasma: 6.3.5
Версия KDE Frameworks: 6.14.0
Версия Qt: 6.8.2
Версия ядра: 6.12.41-6.12-alt1 (64-бита)
Графическая платформа: X11
Процессоры: 8 × 13th Gen Intel® Core™ i3-13100
Память: 62,4 ГиБ ОЗУ
Comment 1 Сергей 2025-08-22 15:28:06 MSK
Необходимо отметить, что при описанной ранее проблеме рутокен mfa без проблем  позволяет защитить аккаунты в веб-сервисах, поддерживающих спецификацию WebAuthn, в частности в     mail.ru (https://dev.rutoken.ru/pages/viewpage.action?pageId=155942942). 
Также выполнение рекомендаций не исправило проблему:
Чтобы Рутокен MFA мог работать в системах GNU/Linux:

    Откройте терминал и введите команду:
    sudo nano /lib/udev/rules.d/70-u2f.rules

    Затем введите строки:
    #Rutoken
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0093", TAG+="uaccess"

    Сохраните файл. Для этого нажмите Ctrl + O или F3.
Comment 2 Vladislav Glinkin 2025-08-26 17:15:46 MSK
Здравствуйте! Подтверждаю вашу проблему при создании ключей.

> ssh-sk-helper: No FIDO SecurityKeyProvider specified

Нужна внешняя библиотека для поддержки U2F/FIDO, переданная в SSH_SK_PROVIDER=<путь>  либо встроенная поддержка в openssh.

В 2019 году такая библиотека была добавлена в libfido2 - https://github.com/Yubico/libfido2/commit/601565cbfab772e4adda2d6de1d7f46e9d913193
В 2020 году она была удалена из libfido2 - https://github.com/Yubico/libfido2/commit/2ba6c6afe5f2d1717bf366da043ccb515fbed8de с комментарием "the openssh middleware now lives with openssh itself"

В репозитории openssh собран без опции security_key_builtin, что отключает встроенную поддержку U2F/FIDO:
%def_without security_key_builtin
Comment 3 Repository Robot 2025-08-27 16:10:05 MSK
openssh-9.6p1-alt4 -> sisyphus:

Wed Aug 27 2025 Anton Zhukharev <ancieg@altlinux> 9.6p1-alt4
- NMU: Enabled FIDO2 security key support (ALT#55694).
Comment 4 Сергей 2025-08-28 13:53:19 MSK
спасибо! Все работает.
$ ssh-keygen -t ecdsa-sk -O resident 
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
Enter PIN for authenticator: 
You may need to touch your authenticator again to authorize key generation.
Enter file in which to save the key (/home/user_name/.ssh/id_ecdsa_sk): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user_name/.ssh/id_ecdsa_sk
Your public key has been saved in /home/v0lk/.ssh/id_ecdsa_sk.pub
The key fingerprint is:
SHA256:Ri8gdbfCDxt4alt/enF0+GvOYR9uRdE3yj0SFYrNQ1U v0lk@intel-v
The key's randomart image is:
+-[ECDSA-SK 256]--+
|      . . .  .o+E|
|     . + . .=..oo|
|    . o B ...=+.+|
|     . = B   ++oo|
|      o S o  ..+.|
|     . + o  . . o|
|      .   . .o +o|
|           o. +++|
|          ..  ++.|
+----[SHA256]-----+