Mac os 13更新,Git报 Permission denied (publickey).

在升级Mac os至13版本后,Git拉取代码时遇到Permission denied (publickey)错误。原因是OpenSSH 8.8及以上版本默认禁用RSA签名。解决方案包括删除.ssh文件夹并重新生成使用ed25519算法的密钥,然后将新生成的id_ed25519.pub密钥添加到远程机器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Mac 更新版本出现 git 报 Permission denied (publickey).

更新系统版本后
pull 代码

Update failed
XXXXXXX: Permission denied (publickey).
Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

一、问题出现原因

查询资料得知任何运行OpenSSH 8.8 或更新版本的系统默认使用 SHA-1 哈希算法禁用 RSA 签名。之前的命令,不再适用,算法导致旧的RSA签名无效。

二、解决步骤

1.删除.ssh文件夹重新生成

使用ed25519的算法生成密钥,之后再直接复制密钥去对应的机器。
代码如下:

ssh-keygen -t ed25519 
Generating public/private ed25519 key pair.
Enter file in which to save the key (
### 解决 Git Public Key 被拒绝的问题 当遇到 `Permission denied (publickey)` 错误时,通常是因为 SSH 密钥配置不正确或者未被识别。以下是可能的原因以及解决方案: #### 1. **SSH密钥未正确加载** 如果创建了自定义名称的 SSH 密钥(如 `xxx.github`),而不是默认的 `id_rsa` 和 `id_rsa.pub` 文件,则需要手动指定该密钥给 SSH 客户端[^1]。 可以通过编辑或创建 `~/.ssh/config` 文件来实现这一点。例如: ```bash Host github.com HostName github.com User git IdentityFile ~/.ssh/xxx.github ``` 这样可以确保每次访问 GitHub 时都使用正确的私钥文件。 --- #### 2. **SSH Agent 中未添加私钥** 即使已经生成并上传了公钥到远程仓库,但如果本地未将私钥添加到 SSH agent 中,仍然会出现此问题。可以通过以下命令启动 SSH agent 并添加私钥[^5]: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/xxx.github ``` 注意:这里的路径应替换为你实际使用的私钥文件名。 --- #### 3. **测试 SSH 连接** 为了验证是否成功连接到远程服务器,可运行以下命令进行测试: ```bash ssh -T git@github.com ``` 如果没有返回类似 “Hi username! You've successfully authenticated...” 的消息,则说明仍有问题存在[^2]。 --- #### 4. **Windows 用户特定注意事项** 对于 Windows 系统上的用户,可能会因为环境变量 `SSH_AUTH_SOCK` 设置不当而导致无法正常工作。此时建议重启计算机后再尝试上述操作;另外也可以通过安装最新版本的 Git Bash 来获得更好的兼容性和支持[^3]。 此外,在某些情况下还需要确认 `.ssh` 目录下的权限设置是否恰当——即只有当前用户能够读写这些敏感数据文件。 --- #### 5. **重新生成新的 SSH Keys 对** 如果以上方法均无效,考虑删除旧有的钥匙对,并按照官方指南重新生成一对全新的 SSH keys 。具体步骤如下所示 [^4]: - 执行下面这条指令以建立一个新的 RSA 类型 key : ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - 将新产生的 id_rsa.pub 内容提交至目标平台(比如 Gerrit 或者 Github )中的相应位置. 最后再次执行上面提到过的那些检测手段, 应该就能顺利解决问题啦! --- ### 总结 综上所述,解决 `Permission denied (publickey)` 主要涉及以下几个方面:确保 SSH 密钥已正确定义、将其加入到 SSH-Agent 当前会话当中去、适当调整主机映射关系以便匹配非标准命名模式等等。希望这些建议可以帮助您快速定位并修复所面临的技术难题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值