GitHub

SSH 鍵の設定(Mac)

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

SSH 鍵の設定(Mac) diagram

SSH 鍵とは

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

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

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

HTTPS よりもセキュアで、多くのチームが SSH を推奨しています。

STEP 1: 既存の SSH 鍵を確認する

  1. ~/.ssh の中身を確認

    ls -la ~/.ssh を実行します。ディレクトリがなくてもエラーは気にせず次へ進めます。

  2. 既存鍵が GitHub 用か確認する

    id_ed25519id_rsa があっても、それが GitHub 用とは限りません(別サーバーや他サービス用の可能性があります)。ssh -T git@github.com を実行して Hi <ユーザー名>! と返ってくれば、その鍵は既に GitHub に登録済みです。

  3. 状況に応じて進め方を選ぶ

    既に登録済みなら設定完了です。鍵はあるが GitHub 未登録なら STEP 4 で公開鍵を登録します。GitHub 専用鍵を別に作りたい場合や鍵が無い場合は STEP 2 で新規作成します(別名で作る場合は ~/.ssh/github_ed25519 のような任意のファイル名を指定できます)。

bash
# ~/.ssh の中身を確認
ls -la ~/.ssh

# 既存鍵が GitHub に登録済みか確認
ssh -T git@github.com
# "Hi <ユーザー名>!" と返れば登録済み

STEP 2: SSH 鍵を生成する

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

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

  2. 保存場所を決める

    プロンプトで Enter を押すとデフォルトの ~/.ssh/id_ed25519 に保存されます。

  3. パスフレーズを設定

    セキュリティのために設定することを推奨します。空でも作成できます。入力は表示されませんが受け付けられています。

bash
# Ed25519 で鍵を生成(推奨)
ssh-keygen -t ed25519 -C "your-email@example.com"

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

STEP 3: ssh-agent に鍵を登録する

  1. ssh-agent を起動

    eval "$(ssh-agent -s)" でバックグラウンドの ssh-agent を立ち上げます。

  2. ~/.ssh/config に github.com の設定を追加

    AddKeysToAgent yesUseKeychain yesIdentityFile ~/.ssh/id_ed25519 を書いておくと、Mac の再起動後もパスフレーズの再入力が不要になります。

  3. 秘密鍵を Keychain 付きで登録

    ssh-add --apple-use-keychain ~/.ssh/id_ed25519 を実行します。これで Keychain にパスフレーズが保存されます。

bash
# ssh-agent を起動
eval "$(ssh-agent -s)"

# ~/.ssh/config に設定を追加
cat >> ~/.ssh/config << EOF
Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519
EOF

# 秘密鍵を ssh-agent に登録
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

STEP 4: GitHub に公開鍵を登録する

  1. 公開鍵をクリップボードにコピー

    pbcopy < ~/.ssh/id_ed25519.pub.pub ファイル(公開鍵)の中身をコピーします。秘密鍵(拡張子なしの方)は絶対にコピーしないでください。

  2. GitHub の SSH and GPG keys ページを開く

    Settings → SSH and GPG keys → New SSH key と進みます。

  3. Title と Key を入力して保存

    Title には「MacBook Pro」などマシンを識別できる名前を付け、Key 欄にクリップボードから貼り付けます。gh CLI 利用者は gh ssh-key add ~/.ssh/id_ed25519.pub --title "MacBook Pro" で一発登録できます。

bash
# 公開鍵をクリップボードにコピー
pbcopy < ~/.ssh/id_ed25519.pub

# GitHub の設定ページで「New SSH key」に貼り付け
# https://github.com/settings/keys

# または gh CLI で一発登録
gh ssh-key add ~/.ssh/id_ed25519.pub --title "MacBook Pro"

STEP 5: 接続テスト

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

    GitHub への SSH 接続テストコマンドです。初回接続時は fingerprint の確認で yes を入力します。

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

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

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

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

関連コマンド