升级系统以后git ssh报错Permission denied (publickey)

  • 错误提示
    Permission denied (publickey)
git@xxx.xxx.xx: Permission denied (publickey).
fatal: Could not read from remote repository.

原因

  • 升级了系统到Debian12.x导到升级了git版本
  • OpenSSH 8.8/8.8p1 版本开始,就默认关闭了ssh-rsa算法。macOS Ventura内置使用的OpenSSH_9.0p1也是默认关闭了ssh-rsa算法。导致验证失败。

解决方案

#查看openSSH版本
ssh -V 

#生成新密钥 执行完成后cd ~/.ssh/  可以看到生成的 私钥:id_ed25519 公钥:id_ed25519.pub
ssh-keygen -t ed25519 -C "zhang@k83.cn"

# 启动ssh-agent
ssh-agent -s

# 将SSH私钥添加到ssh-agent中
ssh-add ~/.ssh/id_ed25519

将公钥id_ed25519.pub 加到相关后台(gogs,github、gitlab)

报错解决

  • Could not open a connection to your authentication agent.
#执行如下命令
ssh-agent bash 
#然后再执行即可
ssh-add ~/.ssh/id_ed25519