GitHub

SSH 鍵の設定(Windows)

Windows で SSH 鍵を生成し、GitHub に登録して安全に接続する手順

SSH 鍵の設定(Windows) diagram

SSH 鍵とは

SSH 鍵はパスワードの代わりに使う認証方式です。

秘密鍵(自分だけが持つ)と公開鍵(GitHub に登録する)のペアで構成されます。

一度設定すれば、clone / push / pull のたびにパスワードを入力する必要がなくなります。

Windows では Git Bash または PowerShell で設定します。

STEP 1: Git for Windows を準備する

  1. Git for Windows のインストールを確認

    git --version を実行してバージョンが表示されれば OK です。未インストールなら先に Git for Windows を入れます。インストーラーには Git Bash と OpenSSH が含まれています。

  2. OpenSSH クライアントを確認

    ssh -V でバージョンが出れば使えます。Windows 10 以降は標準で OpenSSH クライアントを搭載しているため、PowerShell からもそのまま使えます。

bash
# Git のバージョン確認
git --version

# OpenSSH の確認(PowerShell)
ssh -V

STEP 2: SSH 鍵を生成する

  1. Git Bash または PowerShell を開く

    どちらのシェルでも同じ手順で鍵を生成できます。

  2. ssh-keygen -t ed25519 -C "your-email@example.com" を実行

    Ed25519 は現在推奨されているアルゴリズムです。メールアドレスは GitHub に登録しているものを使います。

  3. 保存場所とパスフレーズを入力

    保存場所は Enter でデフォルト(C:\Users\ユーザー名\.ssh\id_ed25519)のまま進めます。パスフレーズはセキュリティのために設定することを推奨します(空でも可)。

bash
# Ed25519 で鍵を生成(Git Bash または PowerShell)
ssh-keygen -t ed25519 -C "your-email@example.com"

# 保存場所: Enter でデフォルト
# パスフレーズ: 推奨(空でも可)

STEP 3-4: ssh-agent の設定と公開鍵の登録(Git Bash)

  • ssh-agent を起動して秘密鍵を登録

    Git Bash で eval "$(ssh-agent -s)" の後に ssh-add ~/.ssh/id_ed25519 を実行します。

  • 公開鍵を表示してコピー

    cat ~/.ssh/id_ed25519.pub の出力をマウスで選択してコピーします。必ず .pub の方を使ってください。

  • GitHub の SSH and GPG keys に貼り付け

    Settings → SSH and GPG keys → New SSH key を開き、Title にマシン名、Key にコピーした公開鍵を貼り付けて保存します。

bash
# ssh-agent を起動して鍵を登録
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

# 公開鍵を表示してコピー
cat ~/.ssh/id_ed25519.pub
# 表示された内容を GitHub に貼り付け
# https://github.com/settings/keys

STEP 5: 接続テスト

  1. ssh -T git@github.com を実行

    GitHub への SSH 接続テストコマンドです。

  2. fingerprint の確認に yes と回答

    初回接続時のみ、サーバの fingerprint を信頼するか問われます。yes を入力します。

  3. 成功メッセージを確認

    Hi username! You have successfully authenticated... と表示されれば成功です。以降 SSH URL を使った clone / push / pull が使えます。

bash
# 接続テスト
ssh -T git@github.com
# The authenticity of host 'github.com' ... → yes
# Hi username! You've successfully authenticated, ...

# SSH URL で clone できるようになる
git clone git@github.com:owner/repo.git

関連コマンド