秘密鍵の名前を変えたら、GitHubから拒否された話

どうも、お久しぶりです。ぐーどらです。1ヶ月半くらいブログサボっていてびっくりしました!白々しい

今日は技術方面なお話です。一応エンジニアなので、技術なことも書くのです!

先程GitHubにリポジトリを作り、意気揚々とgit push origin master を叩いたわけですよ。そうしたら無慈悲に出てくるエラー。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.


Please make sure you have the correct access rights

おいまじか。以前同じ秘密鍵でgit pushしたやんけーー!

出てしまったエラーはしょうがないんで、Google先生に助けを請います。

まあブログがヒットして「公開鍵を再設定」とか出てくるんですわ。それやったらさっきGitHubから「already exists.」って怒られたんだ。以前pushしてるし、そんなもんだよな。

泣きそうな気分でなんとなくGitHubの公開鍵のページを眺めていたところ、目に入った救世主の文字。

common SSH Problems

common SSH Problems!!

というわけで早速覗きました。

中には見出しでTroubleshooting SSHがあり、”git@github.com: Permission denied (publickey)”の文字が。神かよGitHub。

まずはちゃんとアクセスできるか試してみろと言われている。

$ ssh -vT git@github.com

を叩いてみる。

$ ssh -vT git@github.com 
> ...
> debug1: identity file /Users/you/.ssh/id_rsa type -1
> debug1: identity file /Users/you/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/you/.ssh/id_dsa type -1
> debug1: identity file /Users/you/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Tryingprivate key: /Users/you/.ssh/id_rsa
> debug1: Trying private key: /Users/you/.ssh/id_dsa
> debug1: Nomore authentication methods to try.
> Permission denied (publickey).

な感じの結果になり、要は使える秘密鍵が無いって言われている様子。

思い当たる節は、僕がこのブログを公開するにあたって、さくらVPSへの秘密鍵とGitHubへの秘密鍵と複数の鍵を生成しているからでは…?

そのタイミングでTipのところに目を通してみると、「デフォルトの秘密鍵はSSH認証に自動的に加えられるから、わざわざssh-addする必要ない」って書いてある…つまり今の状態でssh-addすれば認証時に使ってくれるようになるのでは…?

ということでssh-addを試してみたところ、

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:cranch-crown/edleweiss-docker.git
[new branch] master -> master

やったぜ!

というわけで、秘密鍵の名前を変えて使っていたのが原因で、SSH接続するときにエージェントが使ってくれていなかったっぽいですね。

というわけで本日のまとめ

  • 鍵ペアは一組だけ強いセキュリティの鍵を生成し、公開鍵を使い回すほうが良い
  • 複数の秘密鍵を使うなら、ssh-addでエージェントに認識させなきゃだめ