GitHubでSSH接続を使用してコードをCloneするための設定手順
Githubでコードをpullする場合、以前はHTTPS接続におけるパスワード認証で行う事ができました。しかし、2021年8月13日以降、GitHubはHTTPS接続におけるパスワード認証を廃止し、SSHまたは個人アクセストークンを使用した認証に移行しました。
また、2022年3月15日以降、GitHubは古いSSHキータイプ(DSAなど)のサポートを終了し、より安全なキータイプ(ECDSAやEd25519など)の使用を推奨しています。
以上理由より、SSH接続によるコードのClone(取得)方法を以下に説明します。
1. SSHキーの生成
まず、SSHキーを生成します。ターミナルを開き、以下のコマンドを実行します。(Emailアドレスはご自分の物に書き換えてください。)
ssh-keygen -t ed25519 -C "your_email@example.com"
これにより、SSHキーのペア(公開鍵と秘密鍵)が生成されます。デフォルトの場所(通常は ~/.ssh/id_ed25519 のフォルダ)に保存されます。
2. 公開鍵のコピー
次に、生成した公開鍵をクリップボードにコピーします。以下のコマンドを使用します。手動のやり方になりますが、で公開鍵の内容を表示し、コピーしてください。
ちなみに、公開鍵は、***.pubという拡張ですのでお間違いないように。
cat ~/.ssh/id_ed25519.pub
> ssh-ed25519 AAAAC3Nz******・・・ your_email@example.com
上記の出力された”ssh-ed25519 AAAAC3Nz******・・・ your_email@example.com”部分をコピーします。
3. GitHubに公開鍵を追加
GitHubにログインし、右上のプロフィールアイコンをクリックして「Settings」を選択します。
左側のメニューから「SSH and GPG keys」を選び、「New SSH key」をクリックします。
タイトルを入力し、先ほどコピーした公開鍵をペーストして「Add SSH key」をクリックします。
4. SSH接続の確認
SSH接続が正しく設定されているか確認します。以下のコマンドを実行します。
ssh -T git@github.com
> Hi username! You've successfully authenticated, but GitHub does not provide shell access.
正常に接続できれば、「Hi username! You've successfully authenticated, but GitHub does not provide shell access.」というメッセージが表示されます。
4. リポジトリのクローン
SSHを使用してリポジトリをクローンするには、リポジトリのページに移動し、「Code」ボタンをクリックしてSSHのURLをコピーします。URLは通常次のようになります。
git@github.com:username/repository.git
次に、ターミナルで以下のコマンドを実行します。
git clone git@github.com:username/repository.git
こうすると、SSH接続によりGihubにあるコードのClone(取得)する事ができます。