GitHubにSSH(Secure Shell プロトコル)を利用して接続する手順を、鍵作成から設定、接続確認まで順を追って解説します。
開発環境において安心してGit操作できるようにするための実用的な手順書です。
本手順では、ローカル端末において複数の秘密鍵・公開鍵を管理している場合でも使い分けることで共存させることを可能にします。
SSH接続によるGitHubの認証
従来のパスワードのみの認証は、本人確認が不十分なことやきめ細かなアクセス制御を実現するために廃止されました。
現在のGitにおけるpush/pull時の認証には SSH接続認証 と トークン認証 の2つの認証方法が利用可能です。
特にパスフレーズ付きの公開鍵暗号で認証は、パスワードより安全に利用可能が可能です。
パスワードとパスフレーズの違い
パスワードはアカウント等にログインするための情報ですが、パスフレーズは秘密鍵を保護するための任意の文字列です。秘密鍵が盗まれても、パスフレーズが盗まれなければ悪用を防ぐことが可能です。
より詳しい情報については以下を参照してください。
作業全体の流れ
- 鍵ペア(秘密鍵・公開鍵)を作成する
- GitHub に公開鍵を登録する
- 接続先の設定
- ローカルの SSH 接続を設定する
- 接続確認を行い、Git 操作をテストする
鍵ペア(秘密鍵・公開鍵)を作成
まずSSH接続に利用する秘密鍵・公開鍵のペアを作成します。
今回は既存のローカルにある鍵とは別の鍵を新たに作成することで衝突の可能性を回避します。
- 暗号方式: Ed25519 (楕円曲線暗号方式)
- コメント: your_email@example.com (自身のメールアドレスに変更する)
- ファイル名: id_git_ed25519
ターミナルでの実行例:
ssh-keygen -t ed25519 -f ~/.ssh/id_git_ed25519 -C "your_email@example.com"
- 実行中にパスフレーズの入力を求められます。セキュリティを高めるため任意のパスフレーズを設定してください
- 上記コマンドにより以下のファイルが生成されます
- 秘密鍵:
~/.ssh/id_git_ed25519(厳重に保護) - 公開鍵:
~/.ssh/id_git_ed25519.pub(GitHub に登録)
- 秘密鍵:
GitHubへの公開鍵登録
SSH接続する前に作成した公開鍵をGitHubに登録します。
まず作成した公開鍵を出力しメモ帳等にコピーします。
cat ~/.ssh/id_git_ed25519.pub
GitHub の Web UI から登録をします。
- GitHub の右上プロフィール > Settings > SSH and GPG keys > New SSH key
- Title に分かりやすい名前(例: "laptop - 2025-11")、Key に公開鍵の内容を貼り付けて保存
画面の右上にあるプロフィールをクリックしSettingsを選択します。
「SSH and GPG keys」を選択します。
「New SSH key」を選択し先ほどメモ帳等に記録した公開鍵をコピー&ペーストします。
接続先の設定
~/.ssh/config の作成・設定をすることで接続先による秘密鍵を設定します。
複数鍵やホスト別設定を使う場合は ~/.ssh/config を用意しておくと便利です。
以下は GitHub 用の推奨例(ファイルが存在しない場合は作成)です。
IdentityFile は先ほど作成した秘密鍵のパスに合わせてください。
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_git_ed25519
GitHubへのSSH接続確認
以下のコマンドからSSHの接続確認を行います。
ssh -T git@github.com
- 最初の接続では、ホスト鍵の確認が求められます。yes と入力して続行します
- 設定したパスフレーズの入力が求められるので作成時に設定したパスフレーズを入力します
- 成功すると、ユーザー名を含むウェルカムメッセージが返ります(例: Hi username! You've successfully authenticated, but GitHub does not provide shell access.)
よくあるトラブルと対処
もし正しく接続ができない場合は ssh -vT git@github.com でデバッグすることが推奨されます。-vT パラメータによりより詳細なログが出力されます。
トラブル一覧
- 鍵が使われない / password を求められる
-
~/.ssh/configのIdentityFileを確認する
-
- Permission denied (publickey)
- 公開鍵が GitHub に登録されているか確認する
- 秘密鍵のパーミッションが 600 になっているか確認する
参考URL