最近遇到一个开发同学遇到了一个这样的问题,他使用windows系统上的wsl 去clone代码时,报如下错误:
cloning into 'test'...
testuser@gerrit.company.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
遇到这样的问题,排查思路很明确:
1. 域名能否解析:ping gerrit.company.com 看看是否能解析出域名
2. 检查该开发是否有该仓库的权限
3. 检查公私钥配置是否正确,是否已经贴到gerrit的“SSH Keys”下面了。
都检查了一遍,发现都没有问题,最后把重点放在了这个ssh keys上,怀疑是否权限配置的不对,因为遇到过私钥权限给得太大,不能顺利ssh的情况。
又检查了一遍ssh keys是否被正确地粘到了gerrit上。
最后接近放弃时,看到了这个:
Generating a new SSH key and adding it to the ssh-agent - GitHub Docs
因为听说rsa类型的密钥接近淘汰了,而开发使用的是“ssh-keygen”命令一路默认生成的公私钥,默认就是rsa类型的。
所以建议开发使用如下命令重新生成了新的公私钥
ssh-keygen -t ed25519 -C "your_email@example.com"
可能是新系统上的wsl可能已经不支持rsa类型的公私钥ssh了。
竟然就可以了,记录一下~