这个错误信息表明在尝试与远程 Git 存储库通信时遇到了 SSH 认证问题。错误中的 “Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)” 提示了可能的认证方式,而 “Could not read from remote repository” 则说明了连接远程仓库时发生的问题。
前置操作
依然是因为macOS好久没有更新升级过了,操作了升级macOS后出现的问题
问题
在gitLab页面新建了一个分支,现在需要在本地切换并关联到远程分支,第一步根据远程分支建立本地分支就gg了
idea命令行输入如下
git fetch origin 远程分支名x:本地分支名x
结果需要我输入密码,之前可是没有输入过密码的,结果输入三次密码还都没有对
于是乎报错了(输入密码感觉不正常了),如下
git@git.**: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决
需要在 .ssh/config 增加一些配置才行
进入.ssh文件
.ssh文件一般是在用户目录下
cd ~/.ssh
创建config文件
已经存在该文件的话则不需要创建
touch config
config文件中添加如下配置
Host *
IdentityFile ~/.ssh/id_rsa # 写明 key 的位置
HostkeyAlgorithms +ssh-rsa # 使 openssh 支持 rsa 算法
PubkeyAcceptedAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
再次执行命令则没有问题了,解决了
原因
看到有些说法是有些mac 系统不支持 rsa 算法,不确定是否为根本原因(一般系统升级应该都会兼容的啊),但还未深究其因
可能的原因包括:
-
SSH密钥问题: 你的SSH密钥可能没有被正确添加到SSH代理中。确保你的SSH密钥已经添加,并且代理正在运行。可以使用 ssh-add 命令添加密钥。
-
远程仓库未设置SSH密钥: 如果你使用SSH协议进行访问远程仓库,确保你的公钥已添加到远程仓库的SSH密钥设置中。这通常可以在远程仓库的用户设置或账户设置中找到。
-
远程仓库URL使用了错误的协议: 确保你使用的是SSH URL,而不是HTTPS URL。SSH URL的格式为 git@github.com:username/repo.git,而HTTPS URL的格式为 https://github.com/username/repo.git。
-
权限问题: 确保你对远程仓库有足够的读写权限。有时,这可能是由于远程仓库设置了访问控制或者你的账户没有足够的权限引起的。
-
系统更新问题: 尽管一般来说,系统更新应该兼容,但某些情况下,特别是在系统或软件版本升级时,可能会导致某些配置不再适用。确保你的系统和Git客户端都是最新的版本,并且没有相关的已知问题。
-
防火墙或网络问题: 确保你的网络连接正常,并且没有防火墙阻止了SSH连接。有时网络问题或防火墙设置可能导致SSH连接失败。
-
其他配置问题: 检查你的SSH配置文件(通常是 ~/.ssh/config)是否正确配置,是否有一些特殊的设置导致了问题。
最后
- 好看的灵魂千篇一律,有趣的鲲志一百六七!
- 如果觉得文章还不错的话,可以点赞+收藏+关注 支持一下,鲲志的主页 还有很多有趣的文章,欢迎小伙伴们前去点评
- 如果有什么需要改进的地方还请大佬指出❌