uiuifree.com

- サイト制作のノウハウと最適化を目指して-

2020.6.29mac環境でFIDO/U2F対応の公開鍵ecdsa-skを生成する。

mac環境でFIDO/U2F対応の公開鍵ecdsa-skを生成する。

FIDO/U2Fの2段階認証向けにリリースされた公開鍵を試してみたくなりました。 ただmacで試そうともOpenSSHバージョンがデフォルトでは合っていなかったのでバージョンアップすることで対応できるようにしました。

検証環境

  • macOS Catalina 10.15.5

FIDO/U2Fの証明書を生成

FIDO/U2Fの証明書はssh-keygenで生成できます。

error
user@localhost ~ % ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk
unknown key type ecdsa-sk

しかしmacで生成しようとするとunknown key type ecdsa-skとエラーが発生して生成できませんでした。

user@localhost ~ % ssh -V                                      
OpenSSH_8.1p1, LibreSSL 2.7.3

OpenSSHのバージョンを確認するとOpenSSH_8.1p1です、OpenSSH 8.2以上からしかFIDO/U2Fの証明書に対応していないためアップデートする必要があります。

brew でアップデート

macのOpenSSHをアップデートはbrew経由で行えます。 https://formulae.brew.sh/formula/openssh

brew install openssh

ターミナルを立ち上げ直すと

user@localhost ~ % ssh -V
OpenSSH_8.3p1, OpenSSL 1.1.1g  21 Apr 2020

これで先ほどのコマンドが叩けるようになりました。

user@localhost ~ %  ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk
Generating public/private ecdsa-sk key pair.
You may need to touch your authenticator to authorize key generation.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ~/.ssh/id_ecdsa_sk
Your public key has been saved in |/.ssh/id_ecdsa_sk.pub
The key fingerprint is:
SHA256:UVNEPjnN4SMxV76/aO1843pahM5W2qWE6k3YL66x7S8 user@localhost
The key's randomart image is:
+-[ECDSA-SK 256]--+
|          o+* o..|
|         . o O o |
|        .   * = .|
|         .   =...|
|        S   ...+.|
|           +o.=.o|
|          + o=oo.|
|         . *Eo++o|
|          ++*BO=o|
+----[SHA256]-----+

これでキーの生成ができるようになりました。 あとはサーバーの受け口も対応すれば繋がるようになるかな。

PROFILE

このサイトを運営してるuiuifreeです。
渋谷のベンチャー企業で2年ほど新規事業を担当した後にフリーランスエンジニアにキャリア転換。
求人サイトの開発が多くエンジニア/看護師/保育士などの分野でサイトを運営しています。

アウトプット中の技術

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)