git でリモートリポジトリに ssh するときに Permission denied (publickey).

概要

ローカルからリモートリポジトリに push しようとして以下のエラーが出ちゃったときの話。

$ git push origin master
username@hostname.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

環境

実施手順

1. 鍵の作成

$ ssh-keygen -t rsa -b 4096 -C "your@address.com"

2. ~/.ssh/config の設定

Host backlog
  User username
  HostName hostname.com
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes
  port 22

ここまでやって、リモートリポジトリに push したらエラーになったので、以下実施。

3. ssh-agent に秘密鍵を追加

$ eval `ssh-agent`
Agent pid XXXXX
$ ssh-add ~/.ssh/id_rsa
Identity added: /c/Users/name/.ssh/id_rsa (/c/Users/name/.ssh/id_rsa)

4. 鍵の登録状態を確認

$ ssh-add -l
4096 SHA256:XXXXXXX/XXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXX /c/Users/name/.ssh/id_rsa (RSA)

リモートリポジトリに push して成功。