GitHubへのアクセスをSSHに切り替えることで、より安全にリポジトリを操作できるようになります。この記事では、SSHキーの生成からGitHubへの登録、設定確認までの初期設定方法を分かりやすく解説します。
1. SSHキーを生成する
まずは、SSHキーを生成します。以下のコマンドをターミナルに入力してください。
ssh-keygen -t ed25519 -C "your_email@example.com"
-
-t ed25519
は最新の推奨される暗号方式です。 -
-C
はキーに紐づけるメールアドレスを指定します。
コマンドを実行すると、キーを保存する場所を聞かれます。デフォルトの場所(~/.ssh/id_ed25519
)で問題ないので、そのままEnterを押します。次に、パスフレーズを設定するかどうかを聞かれますが、空でも設定しても構いません。
2. SSH公開鍵をGitHubに登録する
次に、生成したSSH公開鍵をGitHubに登録します。
公開鍵の確認
以下のコマンドで、公開鍵を確認します。
cat ~/.ssh/id_ed25519.pub
コマンドを実行すると、公開鍵が表示されるので、これをコピーします。
GitHubに公開鍵を登録
- GitHubにログインし、右上のプロフィールアイコンをクリックして、「Settings」を選択します。
- 左側のメニューから「SSH and GPG keys」を選び、「New SSH key」をクリックします。
- 「Title」に任意の名前を入力し、「Key type」はAuthentication Keyを選択、「Key」欄に先ほどコピーした公開鍵を貼り付けて「Add SSH key」をクリックします。
3. SSH接続の確認
次に、GitHubとSSH接続が正常に行えるか確認します。
ssh -T git@github.com
初めて接続する場合、ホストを確認するメッセージが表示されるので、「yes」と入力します。成功すると、次のようなメッセージが表示されます。
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
このメッセージが表示されれば、SSH接続の設定は完了です。
4. グローバルにGitの設定を変更する方法
まず、Gitの設定を変更して、すべてのリポジトリでデフォルトでSSHを使うように設定します。
-
Gitの設定ファイル(
~/.gitconfig
)に設定を追加することで、常にSSHで接続するようにします。以下のコマンドをターミナルに入力して、SSHをデフォルトに設定します:git config --global url."git@github.com:".insteadOf "https://github.com/"
-
これで、HTTPSのURLでクローンしたり、GitHubのリモートにアクセスしようとすると、自動的にSSHのURLに置き換えてくれます。
5. 手動でSSHを指定してクローンする方法
もし新しいリポジトリをクローンする場合は、最初からSSHでクローンすることもできるよ。GitHubのレポジトリページで「Code」ボタンをクリックして、SSHのURLを選んでクローンします。
git clone git@github.com:username/repository.git
6. 既存のリポジトリをSSHに変更する
もし既にクローンしたリポジトリがHTTPSで設定されている場合も、SSHに簡単に変更できます。
-
リモートURLを確認する:
git remote -v
-
リモートURLが
https://github.com/username/repository.git
のようになっていたら、以下のコマンドでSSHに変更します:git remote set-url origin git@github.com:username/repository.git
username/repository
の部分は、実際のGitHubのユーザー名とリポジトリ名に置き換えてください。これで、GitHubに接続する際に毎回SSHを使うように設定しました。
まとめ
これでGitHubへのアクセスをSSH認証に切り替える初期設定が完了しました。セキュリティ面で強化されるため、今後のプロジェクトで積極的にSSHを利用していきましょう。
必要に応じて、GitHubの公式ドキュメントも参考にしてください。