Yuki猫のおうち

気ままに自由に日々を生きるエンジニアのブログ

sshで公開鍵認証を行ったときに「Permission denied」が発生したときの対処法

よくあるエラーな「Permission denied」

一般的なPermission deniedの解決法はネットを漁ればたくさんヒットするので割愛するが、稀にそれでも解決できないときがある。

$ ssh -i ~/.ssh/id_rsa_hoge foo@hugahuga
 Permission denied (publickey).
 fatal: Could not read from remote repository.

解決法

そんなときに試してみたい方法がこれ。
sshクライアントが秘密鍵の存在を知らないという可能性を疑ってみる。

$ eval `ssh-agent` // sshエージェントを起動
$ ssh-add ~/.ssh/id_rsa_hoge // sshエージェントに秘密鍵を登録
 Enter passphrase for ~/.ssh/id_rsa_hoge:

これで秘密鍵をエージェントに教えてあげれば、先ほどのsshコマンドが通るようになっているはず。

$ ssh -i ~/.ssh/id_rsa_hoge foo@hugahuga

http://webos-goodies.jp/archives/50672669.html
上の記事を見る限り、別にssh-agentが秘密鍵の存在を知らなくてもssh接続自体はできそうな感じがする。

もしかして、id_rsaの鍵を作成済みの状態で別の鍵ペア(id_rsa_newとか)を生成すると、ssh-agentが自動でid_rsaの方を参照しちゃって「鍵違うよ」となっているとか、そういうことなんだろうか...

わからん...