GithubのクローンでPermission deniedになった話

git cloneでPermission denied (publickey)…

 
今回はGithubのリポジトリをsshでgit cloneした時に起きた権限エラーについてご紹介いたします。
ずっとgithubを使っていながらハマったので共有の意味も含めブログに残します。
 

前提

 
以下の設定は完了しているものとして話を進めていきます
  • 鍵の生成とパーミッション設定
  • Githubとの疎通確認(ssh -T git@github.com)
 

エラー調査

 
sshでgit cloneしようとしたら以下のエラーが出ました。
 
まず確認していただきたいのが.ssh内のconfigファイルです。
自分の場合は以下のように個人アカウントと法人アカウントを分けるためにconfigで複数gitのホスト設定をしていました。
 
法人アカウントで作成したリポジトリをgit cloneする際にsshのボタンからそのままコピーするとPermission denied (publickey)で権限エラーになります。個人アカウントだとなんの問題もないのでなぜだ…
 
迷走しそうだったので疎通確認からやり直してみたところ、個人アカウント名が返ってきてました。つまり、今回はgit@github.com=個人アカウントなので、法人アカウントで作成したリポジトリの権限がなくエラーになっていました!
 
実際に法人アカウントのホストで疎通確認すると、きちんと法人アカウント名で返ってきてました。
 

解決方法

 
以下のようにconfigファイルで設定したホスト名にすることでgit cloneができます!
理解するとなんてことはないのですが、デフォルトでssh keyをコピーするとgit@github.comになっているので注意しましょう!
 

さいごに

Githubアカウントを複数所持する場合はホスト名をそれぞれ区別しやすい名前にしておくと権限エラーになっても気づきやすいかもしれませんね。
その他Github運用やシステム開発についてお悩みの際は弊社お問い合わせにて気軽にご連絡ください。