Closed14

yubikeyを買ったからには使い方をマスターしたい・・!

yuriyuri

環境
Windows11 pro
Yubikey 5 NFC Firmware:5.4.3

個人的な備忘録です。解決できてないところも多々あります。

yuriyuri

ハマりポイント

Yubikeyの構造(?)は
1.FIDO2
2. PIV
3. GPG

この3つそれぞれにPINが存在する!
さらに、GPGはadmin PINが存在する!!

admin PIN3回間違えた!!😭

yuriyuri

iPhoneの多要素認証で、FIDOが利用できるようになりました

セキュリティーキー2本必要です!!

yuriyuri

FIDOにSSHキーを保存する

FIDOでSSHキーを持つことも可能!
(セキュリティ的にはGPGのがいいかと思いますが、こっちのほうが簡単です)

Git Bashを管理者権限で開く
キーを作成

$  ssh-keygen -t ed25519-sk -O resident -O application=ssh:GitHub -C "your@example"

パスフレーズの設定、PINの入力、yubikeyにタッチ
これでyubikeyのFIDOへSSHキーが登録されます。

ちなみに、Powershellでやると、、unsupported key typeとエラーがでます。。
どうもwindows特有のバグらしいんですが、詳しいことは知りません。なのでgit bashで実行しないといけないようです。

下記コマンドで、PC移転や紛失時にカレントディレクトリに鍵が復元されます。

ssh-keygen -K

ハマりポイント
途中、public keyのパーミッションがおかしいとか怒られました。
ssh-add 実行したところ、SSHエージェントが起動されてなかった・・

参考URL
https://www.yubion.com/post/fido2セキュリティーキーでgithubsshアクセス強化

なぜかここだけ、語調変わってしまった・・・


追記
githubに設定してみたところ、やたらタッチしてくれとでるようになったので向かないことが判明。
(そうかfetchか。。。)
※soucetreeを起動してた時になっていたのでそのせいかも。もしかすると違う要因???

yuriyuri

GPGへのカギ転送は副鍵だけをやるべきなのか・・・??
副鍵だけ転送されてる方多くて、やってしまったか感ある。

github署名もできるようにしたのに、またいろいろやり直したくない・・
(転送する前にgpgバックアップとってなかった)

yuriyuri

subkeyを追加したら、keyを指定してるのに後に追加された方が設定されてしまった。

副鍵を指定するにはこの方法のようだが、そんな秘密カギない!っておこられてしまった。。。

$ git config --global user.signinkey keyID!

サフィックス\!と書いてる人をみたが、ダメだった・・・、、
gitのアプデをしばらくしてないと思い、アプデするもだめ。
別の副鍵の秘密鍵PCにあったら、Yubikeyに接続していないのか??

解決方法分からないけど、どうせ使ってない鍵だしと思い、削除して解決・・・
もやる

yuriyuri

FIDOの認証鍵リストを見る・削除するコマンド

※要:管理者権限
リスト

ykman fido credentials list

削除

ykman fido credentials delete [credential id] 

credential idの...は不要

yuriyuri

GPGでハマったところメモ

gpgコマンドに入って、設定し終わったらCtrl + Cで抜けてた。
何も保存されてない現象が発覚。

q

もしくは

save

で抜けないと保存されない😱

yuriyuri

yubikeyに移したGPGキーは、秘密鍵しか持ってない!

公開鍵をエクスポートしようとしてもないって言われてしまう

yuriyuri

PIVに入ってるキーの公開鍵の取得方法(SSH形式)

PIVの番号かは定かではない。末尾がPIV AUTH pubkeyになるので、おそらくそうだと思っている
1~4まで

.\pkcs15-tool.exe --read-ssh-key PIVの番号

authentication: piv auth
key man:key management
card AUTH:card authentication

yuriyuri

PIVの9dにgithub用SSHを設定したところ、どうもPC内の証明書が参照されてしまい、どうもうまくいかない。もしかすると、agent周りが混線している?

gpg-agent立ち上げてるとpagentが起動しないとかあるので、悩ましい...

9aに入ってるawsに接続してるSSHはうまく動作するんだけれども、pkcsのdll設定するときに、この番号のを選択できないものか・・・

この辺全く知識皆無の状態で始めたのでハードルが高かったか・・・
もしくは、そもそもwindows環境ではよほどの知識がなければ難しいのか・・・!?
悩ましい。

yuriyuri

yubikeyの中には秘密鍵しかないので、公開鍵までエクスポートできません。。。

そこで、チートなやり方
https://www.nicksherlock.com/2021/08/recovering-lost-gpg-public-keys-from-your-yubikey/

sshの公開鍵が撮れるようにはなったけど、やっぱりパソコン内の証明書を参照してしまう・・・

Bad permissions. Try removing permissions for user:  PC名\\user名 (証明書名) on file /path/to/鍵名

後日追記
ちがう・・・!証明書じゃない・・・。
別で作ったPCユーザーだこれは・・(似たような名前にしてしまったので気が付かず)

更に追記

ssh-add -l

を、powershellと、git bashで実行したときに挙動が違うことが分かった。
git bashでなら、gpgで登録している鍵が表示されるのに、
powershellだと、表示されない。。。

wsl-ssh-agentなるものをインストールしようとしたが、トロイの木馬とのことでディフェンダーに消される・・

yuriyuri
gpg --card-status

を実行したら、

~\AppData\Roaming\gnupg\private-keys-v1.d

に、キーが追加された(ファイル名は{$keygrip}.key)

yuriyuri

たまに、ずっと刺しっぱなしなのに、
カード違うからこのコードのyubikeyに変えてくれって出るので、不安定感が・・・
gpg-agent再起動しても動かないこともあるので、まだがっつり使うのはちょっと不安。

買ったからには色々使い込んでみたかったけど、PIVかFIDOでかるく運用する程度にしておこう・・

このスクラップは2023/04/23にクローズされました