- git clone コマンドを実行した時に起こるエラーについて
- Permission denied (publickey) エラーの解決方法
- Windows・Mac・Linux 各OS別の解決方法
🔥 問題提起:月曜朝9時の悲劇
「よし、今日から新しいプロジェクトだ!」

意気揚々とgit cloneを実行したあなた。しかし、画面に現れたのは冷たい赤文字のエラーメッセージ。
「なんだよこれ!」
Permission denied (publickey).
fatal: Could not read from remote repository.
まるで「お前には入る資格がない」と門前払いされたような気分。隣の席の同僚はスムーズに作業を始めているのに、自分だけなぜ…?
実はこれ、一台のPCで仕事用と個人用のGitHubアカウントを使い分けている人の90%が経験する「あるある」なんです。金曜日まで動いていたのに、月曜日になったら急に動かない。まるでPCが週末の間に記憶喪失になったかのよう。
🤔 疑問提示:なぜこんなことが起きるのか?
想像してみてください。あなたの家に「仕事用の鍵」と「プライベート用の鍵」があるとします。でも、玄関のドアは一つしかない。GitHubも同じで、PCは基本的に「一つの鍵(SSHキー)」しか使えないと思い込んでいるんです。
よくある失敗パターン:
- 金曜日:個人プロジェクトをいじって、SSHキーを個人用に設定
- 月曜日:仕事のリポジトリにアクセスしようとして「誰だお前は!」と拒否される
「じゃあ毎回鍵を付け替えるの?」と思ったあなた。いいえ、賢い方法があります。それは「鍵束」を作ること。PCに「この家には仕事用の鍵を、あの家には個人用の鍵を使ってね」と教えてあげるんです。
💡 解決策:SSH設定の魔法の呪文
実は、SSHには「config」という名前の執事がいます。この執事に「どのGitHubアカウントにはどの鍵を使うか」を覚えてもらえばいいんです。
ステップ1:鍵を2本作る(まだ作ってない人向け)
🪟 Windows (Git Bash)
# Git Bashを管理者として実行してから
# 仕事用の鍵を作成
ssh-keygen -t ed25519 -C "your-work@email.com" -f /c/Users/$USERNAME/.ssh/id_ed25519_work
# 個人用の鍵を作成
ssh-keygen -t ed25519 -C "your-personal@email.com" -f /c/Users/$USERNAME/.ssh/id_ed25519_personal
🍎 Mac / 🐧 Linux
# 仕事用の鍵を作成
ssh-keygen -t ed25519 -C "your-work@email.com" -f ~/.ssh/id_ed25519_work
# 個人用の鍵を作成
ssh-keygen -t ed25519 -C "your-personal@email.com" -f ~/.ssh/id_ed25519_personal
パスフレーズを聞かれたら、セキュリティのために設定することをおすすめしますが、面倒な人は Enter キーを押してスキップも可能です(でも本当は設定した方がいいですよ!)。
🪟 Windows特有のトラブル対策:
- 「Permission denied」エラーが出る場合は、Git Bashを管理者権限で実行
- SSH Agentが動いていない場合は
eval $(ssh-agent -s)
を実行
ステップ2:GitHubに公開鍵を登録
🪟 Windows
# PowerShellで公開鍵を表示
type C:\Users\$env:USERNAME\.ssh\id_ed25519_work.pub
# Git Bashの場合
cat ~/.ssh/id_ed25519_work.pub
🍎 Mac
# 公開鍵をクリップボードにコピー(便利!)
pbcopy < ~/.ssh/id_ed25519_work.pub
# または表示して手動コピー
cat ~/.ssh/id_ed25519_work.pub
🐧 Linux
# 表示して手動コピー
cat ~/.ssh/id_ed25519_work.pub
# xclipがインストールされている場合はクリップボードにコピー可能
xclip -sel clip < ~/.ssh/id_ed25519_work.pub
その後の手順(全OS共通):

- 仕事用アカウントでGitHubにログイン
- Settings → SSH and GPG keys → New SSH key
- コピーした内容を貼り付け
- 個人用アカウントも①~③と同様に設定
(ここでは個人用のid_ed25519_personal.pub
を使用)
🛠️ 具体的対応法:OS別のconfigファイル設定

ここからが本番!OSによってファイルの場所や編集方法が異なるので、お使いの環境に合わせて設定してください。
🪟 Windows編(Git Bash/PowerShell)
configファイルの場所: C:\Users\あなたのユーザー名\.ssh\config
# PowerShellの場合
notepad C:\Users\$env:USERNAME\.ssh\config
# Git Bashの場合
nano ~/.ssh/config
Windowsの注意点:
- Git for Windowsをインストールしていることが前提
- メモ帳で編集する場合、拡張子なしで保存することが重要(config.txtにならないよう注意)
🍎 Mac編(Terminal)
configファイルの場所: /Users/あなたのユーザー名/.ssh/config
# テキストエディタで開く(TextEditを使用)
open -e ~/.ssh/config
# またはターミナルエディタを使用
nano ~/.ssh/config
# もしくは
vim ~/.ssh/config
Macの注意点:
- Finderで隠しファイルを表示するには
Cmd + Shift + .
- 権限エラーが出る場合は
sudo
を使用
🐧 Linux編(Terminal)
configファイルの場所: /home/あなたのユーザー名/.ssh/config
# お好みのエディタで開く
nano ~/.ssh/config
# または
vi ~/.ssh/config
Linuxの注意点:
- ファイルの権限を適切に設定(
chmod 600 ~/.ssh/config
) - WSL2の場合はWindows側とLinux側で別々のSSH設定になる
📝 共通:configファイルの内容
# 仕事用GitHubアカウント
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
# 個人用GitHubアカウント
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
Windows特有の設定:
# Windowsの場合、フルパスで指定することも可能
Host github-work
HostName github.com
User git
IdentityFile C:/Users/あなたのユーザー名/.ssh/id_ed25519_work
IdentitiesOnly yes
📍 権限の設定(重要!)
🪟 Windows
Git Bashで実行:
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_ed25519_*
chmod 644 ~/.ssh/id_ed25519_*.pub
🍎 Mac / 🐧 Linux
# configファイルの権限設定
chmod 600 ~/.ssh/config
# 秘密鍵の権限設定
chmod 600 ~/.ssh/id_ed25519_*
# 公開鍵の権限設定
chmod 644 ~/.ssh/id_ed25519_*.pub
使い方のコツ:URLを少し変えるだけ!
通常のcloneコマンド:
git clone git@github.com:company/project.git
複数アカウント対応版:
# 仕事用
git clone git@github-work:company/project.git
# 個人用
git clone git@github-personal:myname/hobby-project.git
ポイントは github.com
を github-work
や github-personal
に置き換えるだけ!
既存のリポジトリを修正する場合
🪟 Windows (Git Bash/PowerShell)
# 現在の設定を確認
git remote -v
# リモートURLを変更(仕事用の例)
git remote set-url origin git@github-work:company/project.git
🍎 Mac / 🐧 Linux
# 現在の設定を確認
git remote -v
# リモートURLを変更(仕事用の例)
git remote set-url origin git@github-work:company/project.git
🔧 接続テストの方法(全OS共通)
設定が正しく動作するか確認:
# 仕事用アカウントのテスト
ssh -T github-work
# 個人用アカウントのテスト
ssh -T github-personal
成功すると以下のようなメッセージが表示されます:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
トラブルシューティング:
- 🪟 Windows: SSH Agentが起動していない場合は
ssh-agent bash
を実行してから再試行 - 🍎 Mac: キーチェーンに古い認証情報が残っている場合は
ssh-add -D
でクリア - 🐧 Linux: SELinuxが有効な場合は
restorecon -Rv ~/.ssh
で権限を修正
🎯 まとめ:もう月曜日は怖くない

おめでとうございます!これであなたは「SSH設定マスター」の称号を手に入れました。
覚えておくべきポイント:
- 複数の鍵を作る(仕事用・個人用)
- ~/.ssh/configで交通整理(どの鍵をどこで使うか指定)
- URLのgithub.comを置き換える(github-work、github-personalなど)
これで「Permission denied」の恐怖から解放されます。月曜日の朝、颯爽とgit cloneできるあなたを見て、同僚は「おっ、デキる人だな」と思うことでしょう。
最後に一つアドバイス:この設定、一度やれば永続的に使えますが、新しいPCに移行するときは設定ファイルのバックアップを忘れずに。未来の自分が「あの時の自分、グッジョブ!」と感謝する日が必ず来ますから。
エラーメッセージは敵じゃない。
解決方法を知らないだけの、ちょっと不器用な友達なんです。