ことの発端
社内で2要素認証・多要素認証で YubiKey
を採用しました。
で、購入した YubiKey5シリーズ
には FIDO2 (WebAuthn)
のみならず PIV
即ち ICカード
の機能を持っているので、 ssh の公開鍵暗号で使うことにしましたので、 macOS での導入手順を示します。
なお、この記事では以下を前提とします。
- 既に ssh の公開鍵暗号方式を使って git のクローンやプッシュを経験している。
-
PIV
機能があるYubiKey
を所有している。 -
SouceTree
での設定例。 1
1. YubiKey
の設定
下記の記事を参考に YubiKey
を設定してください。
※ この記事で説明している取得した公開鍵を GitHub
や Bitbucket
に設定してください。
2. Yubico PIV Tool
をインストール
PKCS11 の認証モジュールが必要になりますので、インストールしておきましょう。
デフォルトでインストールすると /usr/local/lib/libykcs11.dylib
に必要な認証モジュールがインストールされます。
ここでは以降、デフォルトでインストールした前提で進めます。
3. SourceTree の設定
- メニューから [SouceTree] - [環境設定...] を選択します。
- タブで [アカウント] を選択して、 [追加...] をクリックします。
-
ホスト
を選択し、認証タイプ
をOAuth
にしてアカウントを接続
をクリックします。 -
保存
をクリックして終了です。
通常であれば キーを生成
をクリックするところですが、今回は YubiKey
を使うのでこのままでOKです。
この キーを生成
していないために、アカウントの表示では警告マークが付いていますが、気にしなくて大丈夫です。
4. ssh のホスト設定
~/.ssh/config
ファイルに下記を追加します。
Host github.com
PKCS11Provider /usr/local/lib/libykcs11.dylib
github
に接続してみましょう。
YubiKey
を挿入した後、下記のコマンドを実行します。
ssh git@github.com
すると下記の表示がされますので、 YubiKey
の PIN
を入力し Enter
を押下します。
Enter PIN for 'YubiKey PIV #15801817':
その後、下記のような表示になれば成功です。
PTY allocation request failed on channel 0
Hi terukazu-inoue! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
5. SourceTree を使ってみる
既に設定は終わっていますので、いつものように git でクローンやプッシュを行います。
その際、下記のようなパスワードの入力ダイアログが表示されるので、 YubiKey
の PIN
を入力します。
-
コマンドラインを使っても可能です。しかし、
GitHub Desktop
はトークンによるhttps
アクセスを使用するため使用できません。 ↩