GitHubのSSHのRSA鍵は何に紐付いているのか?

こんにちは。ゆうせいです。
GitHubでSSH接続を使うとき、RSA鍵(SSHキー)は何に紐付いているのか 気になりますよね。

「SSHの鍵はパソコンごと?」
「アプリケーション(SourceTreeなど)ごと?」
「リポジトリごと?」

結論を言うと、GitHubのSSHのRSA鍵は「GitHubアカウント」に紐付いています
詳細を解説していきます!


1. SSHの鍵はどこに紐付く?

GitHubのSSHキーは、基本的に パソコン(ローカル環境) で作成され、
GitHubアカウント に登録することで紐付けられます。

紐付く対象説明
GitHubアカウントSSH鍵はGitHubアカウントに登録される(最も重要!
パソコンごと鍵はローカルPCの ~/.ssh/ に保存される
アプリケーションごと(SourceTreeなど)SSHキーはアプリとは関係なし(設定すれば使えるが、直接の紐付けはない)
リポジトリごとSSHキーは個別のリポジトリには紐付かない(リポジトリ単位の設定は可能)

2. SSH鍵の仕組み

SSH鍵の仕組みを簡単に説明すると、次のようになります。

(1) パソコンでSSH鍵を作成

パソコン上でSSHの公開鍵と秘密鍵のペアを作成します。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

これにより、以下のファイルが ~/.ssh/ に生成されます。

  • 秘密鍵(private key)id_rsaこれを外に出さない!
  • 公開鍵(public key)id_rsa.pub(GitHubに登録する)

(2) GitHubアカウントにSSH鍵を登録

SSH鍵は、GitHubの特定のアカウント に登録されます。

📌 GitHubで登録する手順

  1. GitHubにログイン
  2. SettingsSSH and GPG keys
  3. New SSH Key をクリック
  4. id_rsa.pub の内容を貼り付ける
  5. Add SSH Key を押す

🚀 これで、GitHubアカウントに紐付いた!


(3) SSH接続を確認

GitHubに正しくSSH鍵が登録されているかを確認します。

ssh -T git@github.com

成功すると次のようなメッセージが出る

Hi your-github-username! You've successfully authenticated, but GitHub does not provide shell access.


3. SSH鍵の紐付きと使い方

① SSH鍵はパソコンごと

  • SSH鍵は、各パソコンの ~/.ssh/ ディレクトリに保存されます。
  • 異なるパソコンでは、別のSSH鍵を作成し、GitHubに登録する必要がある。
  • 1つのGitHubアカウントに複数のSSH鍵を登録できる!
    • 例: id_rsa_home.pub(自宅PC用) / id_rsa_work.pub(仕事PC用)

② SSH鍵はSourceTreeのようなアプリとは関係なし

  • SSH鍵はSourceTreeのようなGitクライアントとは直接の関係なし
  • ただし、SourceTreeの設定で SSHキーのパス を指定すれば使える。
  • SourceTreeは、登録されたSSH鍵を使ってGitHubと通信するだけ。

③ SSH鍵はリポジトリごとには紐付かない

  • SSH鍵は、GitHubの特定のアカウントに紐付く
  • そのため、GitHub上のすべてのリポジトリで使える
  • ただし、「デプロイ鍵(Deploy Key)」を使えば、特定のリポジトリ専用の鍵を作成することも可能。

📌 デプロイ鍵(Deploy Key)とは?

  • リポジトリ単位で使うSSH鍵。
  • 読み取り専用の鍵をリポジトリに登録できる。
  • 特定のリポジトリだけを外部のサーバーからクローンしたい場合に便利!

登録方法:
GitHubのリポジトリ → SettingsDeploy keysAdd deploy key


4. よくある質問

Q1. 1つのSSH鍵を複数のGitHubアカウントで使える?

→ できない!(原則)
GitHubの1つのSSH鍵は1つのアカウントにしか登録できない
もし複数のGitHubアカウントを使う場合は、別々のSSH鍵を作成して設定する必要がある。


Q2. 1つのGitHubアカウントに複数のSSH鍵を登録できる?

→ できる!
例えば、自宅PCと会社PCの2台でGitHubを使う場合、それぞれのSSH鍵をGitHubに登録できる。


Q3. SSH鍵をリポジトリごとに使い分けるには?

~/.ssh/config で設定する!
複数のSSH鍵を使い分けたい場合は、 ~/.ssh/config に設定を追加する。

Host github-home
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_home

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work

使い分けるときはリモートURLを変更

git remote set-url origin git@github-home:your-username/repo.git


5. まとめ

対象SSH鍵との関係
GitHubアカウントSSH鍵はアカウントに紐付く(最重要)
パソコンごと各PCでSSH鍵を作成し、GitHubに登録
SourceTreeなどのアプリSSH鍵とは直接の関係なし(設定すれば使える)
リポジトリごとSSH鍵は通常リポジトリ単位ではない(デプロイ鍵は例外)

結論

🚀 SSH鍵は「パソコンごと」に作成され、「GitHubアカウント」に紐付く!
🚀 リポジトリごとの鍵を作る場合は「デプロイ鍵」を使う!
🚀 複数の鍵を使い分けるなら ~/.ssh/config を設定!

これで、GitHubのSSH鍵の仕組みがスッキリ理解できましたね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。