macOS Ventura配置ssh/key无效的问题记录

发布时间 2023-10-11 10:32:13作者: Shalome?

内容转载自 https://cloud.tencent.com/developer/article/2149714

此处仅做个人记录

问题描述

工作电脑是 macOS Ventura ,需要连接gitlab仓库,下载安装git并初始化配置后,按照操作生成SSHkey后,连接远程仓库仍然报错 提示 Permission denied (publickey)

定位问题

经过查证,macOS Ventura 内置使用了 OpenSSH_9.0p1,根据 OpenSSH 发行说明 可以得知,从 OpenSSH 8.8/8.8p1 版本开始,就默认关闭了 ssh-rsa 算法。那么 macOS Ventura 内置使用的 OpenSSH_9.0p1 也是默认关闭了 ssh-rsa 算法。

 

解决方案

解决方案有 2 个:

  1. 基于更安全的 ed25519 哈希算法生成新的密钥,并配置到对应的服务器上、Github|Gitlab 的后台等
  2. 本地重新启用 ssh 对 ssh-rsa 算法的支持

方案一:重新生成 ed25519 算法的密钥

ssh-keygen -t ed25519
ssh-keygen -t ed25519 -C"your@email.com"

执行上述命令后,按照提示输入信息/一路回车,密钥就生成成功。 后续操作

  1. 检查~/.ssh下生成了两个文件。id_ed25519, id_ed25519.pub, 后者是我们需要的公共密钥文件,用vim 打开文件,拷贝信息
  2. 在 Github|Gitlab,添加新的公钥信息到账号的SSH-Key里
  3. 本地 git push 远程,仓库成功初始化,连接成功!

方案二:重新启用 RSA/SHA1

如果替换新的密钥成本比较大,可以考虑重新启用 RSA/SHA1 以允许连接或者进行用户认证。 具体的配置,参考 OpenSSH 8.8/8.8p1 的 Release Notes 可知,可以选择仅启用单个密钥的 RSA/SHA1 支持,也可无差别全部启用。可参考原博进行配置。