解决mac电脑Git push时出现no matching host key type found. Their offer: ssh-rsa,ssh-dss的问题
时间: 2024-09-25 15:15:15 浏览: 111
当你在Mac电脑上通过Git尝试推送代码时,可能会遇到提示`no matching host key type found`,这是因为Git试图连接到远程仓库服务器,但是由于SSH密钥类型不匹配导致的。通常,这是由于服务器使用的加密类型(如`ssh-rsa`或`ssh-dss`)与本地已知主机键(可能是默认的DSA或RSA)不一致。
解决这个问题的步骤如下:
1. 更新本地主机密钥:打开终端,运行命令行:
```
$ ssh-keygen -R <remote-host-or-url>
```
将 `<remote-host-or-url>` 替换为你要推送的远程仓库地址,这会从缓存中移除该远程主机的公钥。
2. 添加新的公钥:如果服务器提供了新的公钥,你需要将其添加到本地信任的SSH密钥对中。首先获取新公钥:
```
$ ssh-copy-id -i <new-public-key-file> <your-username>@<remote-host>
```
将 `<new-public-key-file>` 替换为服务器提供的公钥文件路径,`<your-username>` 是你在该服务器的用户名。
3. 输入密码确认:第一次添加时,系统可能会要求输入密码验证。
4. 确认并替换默认私钥:如果你之前配置过默认的SSH私钥,可能需要手动指定正确的私钥文件(`~/.ssh/id_rsa` 或 `~/.ssh/id_dsa`)给 `ssh`,例如:
```
$ ssh -i ~/.ssh/id_rsa <your-username>@<remote-host>
```
5. 推送代码:现在应该可以正常推送了,试试看能否成功。
阅读全文