SSH(Secure Shell)接続は、HTTPS接続よりも安全で、パスワードを毎回入力する手間を省けるため、GitHubでの開発において推奨される認証方法です。
1. SSHキーペアの生成
SSH接続には、公開鍵と秘密鍵のペアが必要です。秘密鍵はローカルマシンに安全に保管し、公開鍵をGitHubに登録します。
ターミナルを開き、以下のコマンドのいずれかを実行してキーペアを生成します。"your_email@example.com"
の部分は、ご自身のGitHub登録メールアドレスに置き換えてください。
- Ed25519 (推奨): より新しい、安全で高速なアルゴリズムです。
ssh-keygen -t ed25519 -C "your_email@example.com"
- RSA (従来の方式):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
コマンドを実行すると、キーペアの保存場所とパスフレーズの入力を求められます。
- 保存場所: 特に指定がなければ、デフォルトの場所(
~/.ssh/id_ed25519
または~/.ssh/id_rsa
)でEnterを押します。> Enter a file in which to save the key (/Users/you/.ssh/id_ed25519): [Press enter]
- パスフレーズ: 秘密鍵を保護するためのパスワードです。セキュリティのため、設定を強く推奨します。空のままでも構いませんが、その場合はパスフレーズなしでSSH接続が可能になります。
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
キーペアが生成されると、指定したディレクトリに秘密鍵(例: id_ed25519
)と公開鍵(例: id_ed25519.pub
)が作成されます。
公開鍵のコピー
生成された公開鍵の内容をクリップボードにコピーします。
- macOSの場合:
pbcopy < ~/.ssh/id_ed25519.pub # または pbcopy < ~/.ssh/id_rsa.pub
- Linuxの場合 (xclipがインストールされている場合):
xclipがインストールされていない場合は、
xclip -sel clip < ~/.ssh/id_ed25519.pub # または xclip -sel clip < ~/.ssh/id_rsa.pub
cat ~/.ssh/id_ed25519.pub
などで内容を表示し、手動でコピーしてください。
2. GitHubに公開鍵を登録する
- GitHubにログインし、画面右上のプロフィールアイコンをクリックし、「Settings」を選択します。
- 左側のサイドバーで「SSH and GPG keys」を選択します。
- 「New SSH key」または「Add SSH key」ボタンをクリックします。
- 「Title」には、このSSHキーを識別しやすい名前(例:
My MacBook Pro
)を入力します。 - 「Key」フィールドに、先ほどクリップボードにコピーした公開鍵の内容を貼り付けます。
- 「Add SSH key」をクリックして登録を完了します。
3. SSH接続テスト
GitHubへのSSH接続が正しく設定されたかを確認します。
ssh -T git@github.com
初めて接続する場合、ホストのフィンガープリントの確認を求められることがあります。yes
と入力して続行します。
The authenticity of host 'github.com (IPアドレス)' can't be established.
RSA key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
以下のようなメッセージが表示されれば、SSH接続は成功です。
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
username
の部分はご自身のGitHubユーザー名に置き換わります。
4. リモートリポジトリのURLをSSH形式に変更する
既存のローカルリポジトリがHTTPSでクローンされている場合、リモートURLをSSH形式に変更する必要があります。
リポジトリのディレクトリに移動し、以下のコマンドを実行します。
cd [あなたのリポジトリのパス]
git remote set-url origin git@github.com:[あなたのGitHubユーザー名]/[リポジトリ名].git
例: git remote set-url origin git@github.com:yuhi-sa/my-awesome-repo.git
これで、git pull
や git push
などの操作がSSH経由で行われるようになります。