リポジトリをクローンしたり、プッシュやプルなどの操作を行う際には、認証が必要です。GitHubでは、HTTPSとSSHの2種類の認証方法が提供されていますが、SSHを使用するとパスワード入力なしで安全に接続できます。
この記事では、SSHキーを作成し、それをGitHubに登録する方法について詳しく解説します。
SSHとは
SSH(Secure Shell)は、ネットワーク上の通信を暗号化し、安全にリモートコンピュータと接続するためのプロトコルです。GitHubではHTTPS接続の代わりにSSHを使用することで、パスワードなしでセキュアにリポジトリへアクセスできます。
SSHの仕組みについて
SSHは公開鍵暗号方式を使用して安全な通信を実現します。これには「秘密鍵」と「公開鍵」の2つの鍵が関与します。
- 秘密鍵(Private Key): ローカルのコンピュータに保存され、他人には絶対に共有しない。
- 公開鍵(Public Key): GitHubなどのサーバーに登録し、SSH接続の認証に使用される。
SSH接続時に、クライアント(自分のPC)が秘密鍵を使用してサーバー(GitHub)に対して認証を行い、サーバーは登録された公開鍵と照合して接続を許可します。
SSHキーを作成する
以下のコマンドを実行して公開鍵と秘密鍵を作成します。
ssh-keygen -t rsa -b 4096
オプションについて
-t rsa(RSAアルゴリズム)
- SSHキーの作成には、いくつかのアルゴリズム(RSA, ECDSA, Ed25519など)が利用できる
- RSA(Rivest-Shamir-Adleman)は広く使用されている標準的な暗号アルゴリズムで、互換性が高い
- デフォルトでRSAが選択される
-b 4096(鍵長を4096ビットに設定)
- 鍵長(ビット数)が長いほどセキュリティが強化される
- デフォルトの鍵長は2048ビットですが、4096ビットにすることで耐量子暗号的な安全性が高まる
- デフォルトで2048ビットが適用される
オプションは付けなくても実行できますが、より強力なセキュリティを確保するために、-t rsa -b 4096
を明示的に指定することがおすすめです。
ssh-keygenコマンドを実行する

鍵の保存先を指定する
Enter file in which to save the key (/Users/user_name/.ssh/id_rsa):
- デフォルト(
~/.ssh/id_rsa
)で問題ないならそのままEnter - 別の名前(例:
~/.ssh/github_key
)にしたい場合は、フルパスを入力する
パスフレーズを設定する
Enter passphrase (empty for no passphrase):
- セキュリティ強化のため、パスフレーズを設定すると良い
- 何も入力せずEnterを押すと、パスフレーズなしの鍵が作成される
パスフレーズを再入力する
Enter same passphrase again:
- 先ほど入力したパスフレーズを再入力する
- ここで入力ミスをすると、最初からやり直しになるので気をつけましょう
鍵の作成完了
- 生成が完了すると、以下の2つのファイルが作成される
- 秘密鍵:
~/.ssh/id_rsa
(絶対に他人に渡さない!) - 公開鍵:
~/.ssh/id_rsa.pub
(サーバーやGitHubに登録する)
- 秘密鍵:
以下のメッセージが表示されれば成功です。
Your identification has been saved in /Users/user_name/.ssh/id_rsa
Your public key has been saved in /Users/user_name/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .local
The key's randomart image is:
+---[RSA 4096]----+
| .+.==+.+ .o |
| .. +.+.+oo +. |
| E..o..o.ooo.. |
| o+. +=ooo .o .|
| . .+*.So. . .o.|
| o . o o.. . . |
| o o . . |
| o . |
| . |
+----[SHA256]-----+
GitHubに公開鍵を登録する
GitHubへアクセスします。
- 右上のアイコンから Setting → SSH and GPG keys へ移動する
- New SSH keys をクリック
- タイトル(例 MacBook-Pro SSH)を入力し、公開鍵(
~/.ssh/id_rsa.pub
)の内容をペースト - Add SSH key をクリックして登録完了

GitHubとの接続を確認する
次のコマンドで接続を確認します。
ssh -T git@github.com
以下のメッセージが表示されればSSH接続が完了しています。
Hi your-github-username! You’ve successfully authenticated, but GitHub does not provide shell access.

まとめ
SSHは安全なリモート接続を提供するプロトコルであり、GitHubとの認証にも利用できます。
SSHキーの作成は、ssh-keygen
コマンドを使用し、作成された公開鍵をGitHubに登録することで完了します。登録した後は、ssh -T git@github.com
を実行して接続を確認し、正常に認証できれば準備はOKです。これで、GitHubリポジトリとのSSH接続ができるようになりました。