チーム開発初日。
ワクワクしながらチームのリポジトリをcloneすべくコマンドを叩いたら、早速エラーが。
git clone git@github.com:team-name/project-name.git
Cloning into 'project-name'...
The authenticity of host 'github.com (______)' can't be established.
ED25519 key fingerprint is SHA256:_________________________________.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
(___は伏せ字です)
無事に解決できたのですが、初心者にとっては割とややこしかったので、原因と解決ステップを下に記録しておきます。
エラーの原因
SSH鍵を設定していないため、SSH接続でエラーになっている。
解決ステップ
SSH鍵の有無の確認
まずSSH鍵があるのか確認した(叩く場所はどこでもOK):
ls -l ~/.ssh
そうしたらこう返ってきた:
-rw-r--r--@ 1 username staff 92 11 7 13:27 known_hosts
known_hostsはGitHubのこと
known_hostsしかなく、自分を証明するSSH鍵がないので、登録する必要がある
SSH鍵の作成
以下のコマンドを叩くと、SSH鍵を作成できる。
ssh-keygen -t ed25519 -C "my-laptop"
(my-laptopの部分は任意です。好きなコメントに変更してください)
OpenSSHというのを使っている
-tというのは形式を指定するオプション。
RSAという形式もあり(ssh-keygen -t rsa)、ed25519のほうがよりセキュアらしい。
バージョンにもよりますが、2025/11現在、オプションを付けないとデフォルトでed25519が採用される(ソース:https://man.openbsd.org/ssh-keygen )
OpenSSHのバージョンはssh -Vで確認できる
作成できたか確認
もう一度最初のコマンドを打つ
ls -l ~/.ssh
こう返ってくれば作成できている(pubが公開鍵、pubがついていないほうが秘密鍵)
total 24
-rw-------@ 1 username staff 399 11 7 13:46 id_ed25519
-rw-r--r--@ 1 username staff 89 11 7 13:46 id_ed25519.pub
-rw-r--r--@ 1 username staff 92 11 7 13:27 known_hosts
ちなみに399とか89がファイルサイズで、11 7 13:46とかは最終更新日時
キーチェーンに登録する
秘密鍵をMacのキーチェーンに登録することで、SSH接続時に毎回打たなくてよくなります。
以下のコマンドで秘密鍵をキーチェーンに登録できます。
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
一行ずつ打てばOK。
※ 何をやっているのか
eval "$(ssh-agent -s)": SSHエージェント(一時的なプロセス)を起動する
ssh-add --apple-use-keychain ~/.ssh/id_ed25519: SSHエージェントに秘密鍵を渡し、Macのキーチェーンに保存する
これで秘密鍵がMacのキーチェーンに登録される。
GitHubに登録する
公開鍵の内容をクリップボードにコピーする。
pbcopy < ~/.ssh/id_ed25519.pub
GitHubで Settings > SSH and GPG keysを開き、「New SSH key」をクリック。
以下の内容で鍵を作成する。
- Title: 自由に設定(my-laptopなど)
- Key type: 初期値の「Authentication Key」のままでOK
- Key: コピーした内容を貼り付ける
接続できるか確認する
ssh -T git@github.com
以下のように出れば接続成功。
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
cloneする
これでcloneできるようになったはずです。
いざcloneしましょう!
任意のディレクトリへ(以下は~/Documents)
cd ~/Documents
cloneする
git clone git@github.com:team-name/project-name.git