BLOGTIMES
2023/04/09

Yubikey を SSH の公開鍵認証として使う

  ssh  yubikey 
このエントリーをはてなブックマークに追加

Yubikey を SSH の公開鍵認証として使う方法を試してみたら意外と簡単だったのでメモ。

Yubikey 内の公開鍵については事前に YubiKey PIV Manager を使って生成*1しておく必要がありますが、
最近の Windows11 は sshssh-keygen があらかじめインストールされているので、OpenSCをインストールするだけで、以下のように公開鍵を取り出したり、サーバに接続することができます。

公開鍵の取り出し

公開鍵の取り出しはこんな感じで -D オプションを使います。

PIV AUTH pubkey で終わる行を、サーバ側の ~/.ssh/authorized_keys に追加しておきます。
2048bit の場合には少し文字が長いので、誤って途中に改行を入れないように注意をする必要があります。

RSA 以外の鍵は今のところ対応していないようで、エラーメッセージが出ています(この Yubikey には ECC P386bit の鍵も生成してあります)。

C:\>ssh-keygen -D "\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll" skipping unsupported key type failed to fetch key unknown certificate key type failed to fetch key ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA User Authentication Public Key ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA User Authentication Certificate CA ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA PIV AUTH pubkey

サーバへの接続

サーバへの接続はこんな感じで、こちらは -I オプションを使います。
通常の公開鍵認証では秘密鍵のパスフレーズを入力しますが、ここでは Yubikey の PIN を入力することに注意が必要です*2

C:\>ssh -I "\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll" user@example.jp skipping unsupported key type failed to fetch key unknown certificate key type failed to fetch key Enter PIN for '########':(ここでYubikeyのPINを入力)

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/13922
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン