2
2

More than 1 year has passed since last update.

GitHubにSSH鍵を追加する

Last updated at Posted at 2023-04-15

なぜ書いたか

GitHubからリポジトリを、httpsプロトコルではなくgitプロトコルでクローンしようとしたが、GitHubに以下のメッセージが表示されていた。

”You don't have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS. ”

無視してgitプロトコルでクローンを試みたが、できなかった。

上記のメッセージは、GitHubアカウントに公開されたSSH鍵が存在しないため、リポジトリをSSH経由でクローンできないことを示している。
SSH鍵は、GitHubに対して安全な方法で接続するための認証情報であり、GitHubにアクセスするために必要。

よって、解決するには、新しい公開鍵を追加する必要がある。

余談:httpsプロトコルとgitプロトコルの違い

両者とも、gitサーバーに接続するために使用されるプロトコルだが、httpsプロトコルは読み込みのみサポートしているのに対し、gitプロトコルは、読み込みと書き込みの両方をサポートしているという違いがある。
SSHとは接続方法の一つで、ローカルに秘密鍵と公開鍵を予め作り、GitHubに公開鍵を登録しておくことで行える通信方法。

GitHubにSSH鍵を追加する

1. .sshディレクトリが存在するか確かめる

デフォルトでは、SSH鍵は~/.sshディレクトリに保存される。このディレクトリが存在しない場合は、SSH鍵を生成する前にディレクトリを作成する必要がある。

以下のコマンドで確かめる。

ls ~/.ssh

もし、.sshディレクトリが存在する場合は、"id_ed25519"というファイルと、"id_ed25519.pub"というファイルがあるはず。

.sshディレクトリが存在しない場合は、以下のコマンドを実行して、ディレクトリを作成する。

mkdir ~/.ssh

このコマンドで、ホームディレクトリ直下に.sshというディレクトリが作成される。

2. SSH鍵を生成

以下のコマンドを実行

ssh-keygen -t ed25519 -C "your_email@example.com"

3. 公開鍵を確認

~/.ssh/id_ed25519.pubファイルの中身を確認する。

cat ~/.ssh/id_ed25519.pub

このコマンドで返ってきた文字列が、公開鍵として使用される。これをコピーする。

4. 公開鍵をGitHubに追加する

GitHubのサイトにログインし、右上のアカウントアイコンをクリックし、"Settings"を選択。"Settings"ページで、左側のメニューから"SSH and GPG keys"を選択し、"New SSH key"をクリック。"Title"フィールドに任意の名前を入力し、"Key"フィールドに先ほどコピーした公開鍵の内容をペーストする。最後に、"Add SSH key"をクリックして鍵を追加する。

5. 鍵が正常に追加されたかどうか確認する

以下のコマンドを実行し、”Hi username! You've successfully authenticated, but GitHub does not provide shell access.”というメッセージが返されたら、成功。

ssh -T git@github.com
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2