トップ 最新

ただのにっき

2009-10-24(土) [長年日記]

「Permission denied (publickey).」と言われてGitHubが使えなくなった場合の対処法

もう10日前になるのだが、自宅のマシンでGitHubからpullしようとしたら、

% git pull
Permission denied (publickey).

と言われるようになってしまった。他のマシンからは問題なくpush/pullともにできるので、このマシンだけの問題なんだが、忙しかったこともあり、今日になってやっと対応。分散VCSだとどこで作業しても同じだから、危機感薄いなー(笑)。

で、GitHubにそのものずばりのドキュメントがある。ヘルプのTroubleshooting SSH issuesなのだが、ようするに「鍵を作り直せ」という乱暴なことが書いてある。おまえ、sshの鍵をそうホイホイと作り直していられるかっての*1

こういうことが堂々と書いてあるのだとしたら、今後もGitHubでは同じようなことが起きるかも知れない。その場合に、GitHub専用の鍵にしておかないと、面倒でしょうがない。というわけでそうする。id_dsa_githubというファイルで鍵を作って、github.comにアクセスするときにはそれを使わせる:

% ssh-keygen -t dsa -f ~/.ssh/id_dsa_github
% cat >> ~/.ssh/config
Host github.com
User git
IdentityFile ~/.ssh/id_dsa_github
^D

あとは~/.ssh/id_dsa_github.pubの中身をGitHubに設定しなおして、無事に使えるようになった。これで今後同じことが起きても、GitHub専用の鍵だけ変えればいいので、他のホストに影響が及ばない(はず)。

Tags: git

*1 ちなみに、この現象が発覚してすぐ、公開鍵をGitHubに再登録してみたが、効果はなかった。