WindowsからMacBookに移行する際、GitHubのSSHキー設定でかなり躓きました。。
そもそもSSHキーって何だよってところから、いや・・・
なんでWindowsで設定してたのにまた設定しなきゃいけないんだ!!ってところから、色々躓いてAIや検索したりして頑張ったので共有させてください!!
詳しいWindowsからMacBookへ移行手順については、別途記事にしているので、必要時ご参照ください!
SSH鍵の基本を理解
公開鍵と秘密鍵の違い
SSHキーはペアで作られる:
- 秘密鍵(
id_ed25519):自分だけが持つ、絶対に他人に見せてはいけない鍵 - 公開鍵(
id_ed25519.pub):GitHubなどに登録する、公開しても安全な鍵
仕組み
- あなたが秘密鍵でデータに「署名」
- GitHubが公開鍵でその署名を「検証」
- 署名が正しければ、本人確認完了!
ちょっとむずいのですが、とりあえず、秘密鍵は絶対公開してはいけないっということだけは理解しておきたいです。
よくある疑問:ファイル名が同じだけど大丈夫?
「id_ed25519って、みんな同じファイル名じゃない?」
調べていると、「id_ed25519」というものがよくでてきて、「これ、公開していいものなの?」なんて思ったりしたんですが、これは、
ファイル名は同じでも、中身は完全に違う
ということらしいです。
ファイル名の意味
つまり「Ed25519アルゴリズムで作った識別用の鍵」という意味なんです。
実際に確認してみよう
# 公開鍵の中身を表示
cat ~/.ssh/id_ed25519.pub
出力例:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI~~~長い文字列~~~ you@example.com
この AAAAC3NzaC1lZDI1NTE5AAAAI~~~ の部分があなただけのユニークな鍵データです。
同じものを持っている人は世界中に存在しません!
GitHubに登録する手順
1. 公開鍵をコピー
cat ~/.ssh/id_ed25519.pub
上記で出力した列をコピー
2. GitHubで設定
- GitHub → Settings → SSH and GPG keys
- 「New SSH key」をクリック
- Authentication key を選択(後述)
- 先ほどコピーした内容をそのまま貼り付け
Authentication key vs Signing key どっち?
VSCode、Cursorを使うなら Authentication key 一択です!
| 種類 | 用途 | 必要性 |
|---|---|---|
| Authentication key | git push、git pullなどの基本操作 | 必須 |
| Signing key | コミットに署名を付与(Verifiedバッジ) | オプション |
複数デバイスでの鍵管理
「Windowsでも鍵作ってるけど、また作って大丈夫?」
全く問題ありません!むしろ推奨です。
メリット
GitHubには複数登録できる
GitHubは複数のSSHキーを登録できるので、MacBook用、Windows用と分けて管理しましょう。
動作確認
設定完了後、接続テストを実行:
ssh -T git@github.com
成功すると:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
まとめ
これで安心してMacBookでの開発を始められます!
詳しい手順については別途記事にしているのでご参照ください!



