突然以下のメッセージが出てGithubにSSH接続できなくなった。
Load key "~/.ssh/id_ed25519.pub": invalid format
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
思い当たる原因がなく少し調べたのでその備忘録として残します。
結論
SSHエージェントから秘密鍵が消えていたので、追加する。
以下のコマンドでちゃんと繋がるようになった
# SSHエージェントを起動
$ eval `ssh-agent`
# 現在のSSHエージェントに登録されている秘密鍵を確認
$ ssh-add -l
> <何も出力されなかった>
# 秘密鍵をSSHエージェントに追加
$ ssh-add ~/.ssh/id_ed25519
# 接続確認
$ ssh -T git@github.com
Hi your name! You've successfully authenticated, but GitHub does not provide shell access.
試したり確認したこと
permissionの設定
こちらは確認した上で再設定したがダメだった。
$ sudo chmod 700 ~/.ssh
$ sudo chmod 600 ~/.ssh/id_ed25519
$ sudo chmod 600 ~/.ssh/id_ed25519.pub
.ssh/config の確認
こちらも元から問題なさそうだった
$ cat ~/.ssh/config
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_ed25519.pub
鍵の再作成
invalid formatとあるので新しく作り直せばいける?と思ったがダメだった。
既存の鍵のバックアップ(一応)
$ mv ~/.ssh/id_ed25519.pub ~/.ssh/id_ed25519.pub.bak
$ mv ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.bak
新しい鍵の作成・GitHubへ登録
$ ssh-keygen -t ed25519
https://github.com/settings/keys から新しいid_ed25519.pub
を登録