Blog

OpenSSH8.2でfido2/u2fを試そうとしました

February 17, 2020

OpenSSH 8.2 がリリースされ、 fido2/u2f が公式にサポートされたようなので試してみました。

私は ArchLinux を使っているので比較的早くパッケージが降ってきます。 具体的には、 2020-02-14 にリリースされ、当日中には testing レポジトリに入り、 2020-02-16 03:30Z に core レポジトリに入りました。 core に入ったことにより pacman -Syu でインストールできるようになったので試してみましょう。

OpenSSH 8.2 のリリースノート を見ると、 ssh-keygen -t ecdsa-sk で FIDO token backed key を生成することができるようですが、 試してみると、

$ ssh-keygen -t ecdsa-sk                                                                   :(
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
Provider "" dlsym(sk_api_version) failed: /usr/lib/ssh/ssh-sk-helper: undefined symbol: sk_api_version
Key enrollment failed: invalid format

となり失敗します。

Yubico/libfido2 Issue#116 を見ると、 ssh-keygen -t ecdsa-sk -w /usr/lib/libsk-libfido2.so を実行すると以下のようなエラーが出ると書かれています。

$ ssh-keygen -t ecdsa-sk -w /usr/lib/libsk-libfido2.so                                     :(
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
Provider "/usr/lib/libsk-libfido2.so" implements unsupported version 0x00020000 (supported: 0x00040000)
Key enrollment failed: invalid format

FS#65513 にも書かれていますが、これは OpenSSH の configure 時に --with-security-key-builtin オプションを付けてビルドすると -w オプションなしで使えるようになるようです。 上記でパッケージのバグとコメントされているので、数日中に直るでしょう。

リビルドすれば試せますが、現状は Yubikey で間に合っているので降ってきたら試そうと思っています。