LoginSignup
2
1

More than 1 year has passed since last update.

YubiKey を使って git の ssh 接続を構築する(macOS編)

Posted at

ことの発端

社内で2要素認証・多要素認証で YubiKey を採用しました。
で、購入した YubiKey5シリーズ には FIDO2 (WebAuthn) のみならず PIV 即ち ICカード の機能を持っているので、 ssh の公開鍵暗号で使うことにしましたので、 macOS での導入手順を示します。

なお、この記事では以下を前提とします。

  • 既に ssh の公開鍵暗号方式を使って git のクローンやプッシュを経験している。
  • PIV 機能がある YubiKey を所有している。
  • SouceTree での設定例。 1

1. YubiKey の設定

下記の記事を参考に YubiKey を設定してください。

※ この記事で説明している取得した公開鍵を GitHubBitbucket に設定してください。

2. Yubico PIV Tool をインストール

PKCS11 の認証モジュールが必要になりますので、インストールしておきましょう。
デフォルトでインストールすると /usr/local/lib/libykcs11.dylib に必要な認証モジュールがインストールされます。
ここでは以降、デフォルトでインストールした前提で進めます。

3. SourceTree の設定

  1. メニューから [SouceTree] - [環境設定...] を選択します。
  2. タブで [アカウント] を選択して、 [追加...] をクリックします。
  3. ホスト を選択し、 認証タイプOAuth にして アカウントを接続 をクリックします。 image.png
  4. 保存 をクリックして終了です。

通常であれば  キーを生成 をクリックするところですが、今回は YubiKey を使うのでこのままでOKです。
この キーを生成 していないために、アカウントの表示では警告マークが付いていますが、気にしなくて大丈夫です。
image.png

4. ssh のホスト設定

~/.ssh/config ファイルに下記を追加します。

.ssh/config
Host github.com
  PKCS11Provider /usr/local/lib/libykcs11.dylib

github に接続してみましょう。
YubiKey を挿入した後、下記のコマンドを実行します。

ssh git@github.com

すると下記の表示がされますので、 YubiKeyPIN を入力し 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 でクローンやプッシュを行います。
その際、下記のようなパスワードの入力ダイアログが表示されるので、 YubiKeyPIN を入力します。
image.png


  1. コマンドラインを使っても可能です。しかし、 GitHub Desktop はトークンによる https アクセスを使用するため使用できません。 

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1