FIDO2

GitHubにYubiKeyを設定する方法

2026年10月22日 · Yubico Japan

ノートパソコンにUSB-CのYubiKeyを挿し込む手元

GitHubのアカウントには、ソースコードだけでなく、APIキーや設定ファイル、組織のプライベートリポジトリへのアクセス権など、事業にとって重要な情報がつながっています。開発者のアカウントが乗っ取られると、悪意のあるコードを紛れ込ませるソフトウェアサプライチェーン攻撃の入り口にもなりかねません。

GitHubは、GitHub.comでコードを投稿するユーザーに対して2要素認証の設定を段階的に必須化しています。この記事では、YubiKeyを使ってGitHubのアカウントとコードを守る方法として、2要素認証のセキュリティキー、パスキー、SSHキーの3つの使い方を説明します。

GitHubでYubiKeyを使う3つの方法

  • 2要素認証のセキュリティキー:パスワードを入力した後、YubiKeyにタッチして本人確認を行います。
  • パスキー:YubiKeyにパスキーを保存すると、パスワードの入力と2要素認証を1回の操作で済ませられます。
  • SSHキー:git pushなどのSSH接続や、コミットへの署名に、YubiKeyの中の鍵を使います。秘密鍵がパソコンに保存されないため、端末が侵害されても鍵を持ち出されません。

いずれも、YubiKey 5シリーズやSecurity Keyシリーズなど、FIDO2に対応したYubiKeyで利用できます。お使いのパソコンに合うモデルはYubiKey製品一覧から確認できます。

事前準備:2要素認証を有効にしておく

GitHubでは、セキュリティキーを最初の2要素認証として登録することはできません。まず認証アプリ(TOTP)またはSMSで2要素認証を設定し、その後に追加の方法としてYubiKeyを登録します。GitHubは、SMSよりも信頼性の高い認証アプリをバックアップとして使うことを推奨しています。

  • 2要素認証の設定時に表示されるリカバリーコードは、必ずダウンロードして安全な場所に保管します。
  • 2要素認証を設定すると、28日間の確認期間に入ります。この期間内に一度2要素認証でログインすれば、設定が正しく動作していることを確認できます。

2要素認証にYubiKeyを登録する手順

  1. GitHubの任意のページで右上のプロフィール写真をクリックし、「Settings」を開きます。
  2. サイドバーの「Access」にある「Password and authentication」を選びます。
  3. 「Two-factor methods」の「Security keys」で、セキュリティキーを登録するボタンを選びます。
  4. 「YubiKey メイン」など、わかりやすい名前を入力します。
  5. 案内が表示されたら、YubiKeyをUSBポートに挿して金色の部分にタッチします。PINを設定している場合は、PINの入力を求められます。
  6. 同じ手順で、バックアップ用の2本目のYubiKeyも登録します。

※メニュー名や配置は、GitHubの更新によって変わる場合があります。

パスキーとして登録して、ログインをさらに安全・簡単に

YubiKeyにパスキーを保存すると、パスワードを入力せずにGitHubにログインできるようになります。2要素認証を使っている場合も、パスキーはパスワードと2要素認証の両方の条件を満たすため、ログインは1回の操作で完了します。

  1. 「Settings」→「Password and authentication」を開きます。
  2. 「Passkeys」の項目で、パスキーを追加するボタンを選びます。
  3. 保存先を選ぶ画面で「セキュリティキー」を選び、YubiKeyを挿してPINを入力し、タッチします。

すでに2要素認証用に登録したYubiKeyがパスキーに対応している場合は、設定画面からパスキーにアップグレードすることもできます。YubiKeyに保存したパスキーはほかのデバイスに同期されませんが、USBやNFCでさまざまなパソコンやスマートフォンに持ち運んで使えます。

SSHキーをYubiKeyで保護する

パソコンに保存された通常のSSH秘密鍵は、マルウェアに盗まれると、ほかの端末からも使われてしまいます。YubiKeyに対応したSSHキーを作成すれば、鍵を使うたびにYubiKeyを挿してタッチする必要があるため、YubiKeyが手元にない限りリポジトリにはアクセスできません。

この機能には、OpenSSH 8.2以降が必要です。ターミナル(WindowsではGit Bash)で、YubiKeyを挿した状態で次のコマンドを実行します。

ssh-keygen -t ed25519-sk -C "your_email@example.com"

作成されたキーのうち、公開鍵(末尾が .pub のファイル)を、GitHubの「Settings」→「SSH and GPG keys」から追加します。以降、git pushなどでSSH接続するときにYubiKeyへのタッチを求められます。

コミットへの署名にも使える

同じSSHキーは、コミットへの署名にも使えます。GitHubに公開鍵を「Signing Key」として追加し、Gitの設定で署名方式にSSHを指定すると、署名したコミットにはGitHub上で「Verified」と表示されます。第三者がなりすましてコミットを紛れ込ませることを防ぐのに役立ちます。

git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519_sk.pub
git commit -S -m "コミットメッセージ"

安全に使い続けるためのポイント

  • YubiKeyは2本登録する:1本を紛失しても、もう1本でログインできます。
  • リカバリーコードを保管する:すべての2要素認証の方法を失ったときの最後の手段になります。
  • 組織でも2要素認証を必須にする:GitHubの組織(Organization)では、メンバーに2要素認証を必須にする設定ができます。
  • 弱い方法を残さない:セキュリティキーやパスキーを登録した後は、SMSより認証アプリをバックアップにしましょう。

よくある質問

GitHubでセキュリティキーだけを2要素認証に設定できますか?

できません。GitHubでは、まず認証アプリ(TOTP)またはSMSで2要素認証を設定し、そのうえで追加の方法としてセキュリティキーを登録します。バックアップには、SMSより認証アプリを使うことが推奨されています。

セキュリティキーとパスキーの違いは何ですか?

2要素認証のセキュリティキーは、パスワードを入力した後の2つ目の確認に使います。パスキーとして登録すると、パスワードと2要素認証の両方を1回の操作で済ませられます。どちらもgithub.comのドメインに結び付いているため、偽サイトでは認証が成立しません。

YubiKeyをなくした場合、GitHubにログインできなくなりますか?

2本目のYubiKey、認証アプリ、リカバリーコードのいずれかがあればログインできます。2要素認証の設定時に表示されるリカバリーコードは、必ずダウンロードして安全な場所に保管しておきましょう。


参考記事・関連リソース