yubikey 5 NFC の初期設定と ssh 鍵の発行
はじめに
年の瀬なので今年買った積みガジェットを消化していきましょう。
今回は YubiKey 5 NFC(USB-A)を利用して 秘密鍵を PC 上に保管せず公開鍵の発行と RaspberryPi へ SSH するところまでをやってみます。
Yubico - YubiKey 5 NFC - USB-A - 2つのファクター認証セキュリティキー
- メディア: Personal Computers
yubikey をセットアップ
YubiKey PIV Manager は deprecated だそうです。
代わりに YubiKey Manager の qt 製の GUI あるいは CUI があるようです。
CUI のインストール
ykman
と opensc
を brew でインストールします。
$ brew install ykman $ brew install opensc
GUI のインストール
以下の Releases ページからダウンロードできます。
Qt 製なのですね。
yubikey から公開鍵を発行する
yubikey を mac に接続します。
ykman list
で mac に認識されているかを確認できます。
$ ykman list YubiKey 5 NFC [OTP+FIDO+CCID] Serial: XXXXXXX
yubikey の PIV(Personal Identity Verification)では 9a 9c 9d 9e の 4つのスロットがあり、4つの秘密鍵を保管しておくことができるようです。
ykman
コマンドで SSH 用の RSA の鍵の生成を行います。
$ ykman piv generate-key -a RSA2048 9a pubkey.pub $ ykman piv generate-certificate -s "SSH Key" 9a pubkey.pub
発行した RSA の鍵は GUI からも確認することができます。
.ssh/config
に PKCS11Provider のパスを指定します。
$ cat /Users/nao/.ssh/config Host raspberrypi.local User pi PKCS11Provider /usr/local/lib/opensc-pkcs11.so
ssh-keygen
コマンドで authorized_keys に追記できる形式に修正し
SSH する先の raspberrypi へ scp します。
$ ssh-keygen -i -m PKCS8 -f pubkey.pub > pubkey $ scp ~/.ssh/pubkey pi@raspberrypi.local:
raspberrypi 側で authorized_keys
へ追記します。
$ cat pubkey >> ~/.ssh/authorized_keys $ rm pubkey
raspberrypi へ SSH しましょう。
PIN が聞かれます。
デフォルトの設定では 123456
です。
$ ssh pi@raspberrypi.local PIN:
無事SSHできました。
まとめ
yubikey 5 NFC の初期設定と ssh 鍵の発行する方法をまとめました。