macOS Ventura配置ssh/key无效的问题记录
内容转载自 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 个:
- 基于更安全的 ed25519 哈希算法生成新的密钥,并配置到对应的服务器上、Github|Gitlab 的后台等
- 本地重新启用 ssh 对 ssh-rsa 算法的支持
方案一:重新生成 ed25519 算法的密钥
ssh-keygen -t ed25519
ssh-keygen -t ed25519 -C"your@email.com"
执行上述命令后,按照提示输入信息/一路回车,密钥就生成成功。 后续操作:
- 检查~/.ssh下生成了两个文件。id_ed25519, id_ed25519.pub, 后者是我们需要的公共密钥文件,用vim 打开文件,拷贝信息
- 在 Github|Gitlab,添加新的公钥信息到账号的SSH-Key里
- 本地 git push 远程,仓库成功初始化,连接成功!
方案二:重新启用 RSA/SHA1
如果替换新的密钥成本比较大,可以考虑重新启用 RSA/SHA1 以允许连接或者进行用户认证。 具体的配置,参考 OpenSSH 8.8/8.8p1 的 Release Notes 可知,可以选择仅启用单个密钥的 RSA/SHA1 支持,也可无差别全部启用。可参考原博进行配置。