GitHub

SSH接続で「Permission denied (publickey).」が表示されるときは

結論

SSH鍵ペア作成時に自分で名前をつけた場合は、

eval `ssh-agent -s`
ssh-add ./.ssh/秘密鍵ファイル名

を実行しておく必要がある。

※Git for Windows ならば GitBash から実行

なお、ssh-agent -s は環境変数のセットなどのスクリプトを標準出力するコマンドなので、evalをつけて実行しなければ、ただ画面に表示されるだけとなる。

-s Generate Bourne shell commands on stdout.

man ssh-agent 実行結果

経緯

GitHubにSSH接続するためにまずSSHの鍵ペアを作成した。

そして、公開鍵をGitHubに登録後に

ssh -T git@github.com

を実行すると、

git@github.com: Permission denied (publickey).

と表示され接続できなかった。

GitHubのドキュメントを確認すると、次のように記載されていた。

ほとんどのシステムでは、既定の秘密キー (~/.ssh/id_rsa および ~/.ssh/identity) が SSH 認証エージェントに自動的に追加されます。 キーを生成するときにファイル名をオーバーライドしない限り、ssh-add path/to/key を実行する必要はありません。

https://docs.github.com/ja/authentication/troubleshooting-ssh/error-permission-denied-publickey
太字装飾は筆者

つまり、キーを生成したときに自分で名前をつけた場合はssh-addする必要があることが分かった。

プロフィール

興味のあること、つまづいたこと、考えたことなどを書いています。

カテゴリー

コメント

タイトルとURLをコピーしました