最近我在Win10上通过Cygwin建立了一个git存储库,现在我正在尝试让它追踪github上的一个远程存储库。
问题是,在添加了一个远程存储库后,就会遇到这样的问题:
git remote add github-remote git@github.com:username/github-remote.git
我无法以任何方式访问它(推送、获取、通过“show”显示其他信息)。我得到的只有这个:
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
尽管我知道这个主题已经被广泛讨论,但我找到的解决方案都没有帮助。这就是为什么我决定发表另一个问题的原因。
以下是我逐步执行的操作:
1)生成了公钥-私钥对:
ssh-keygen -t rsa -b 4096 -C "mymail@ex.com"
我尝试使用默认和自定义目录来存储id_rsa文件,但结果相同。
2)运行了ssh代理(或者准确地说是检查它是否正在运行):
eval $(ssh-agent -s)
3) 将密钥添加到代理
ssh-add ~/.ssh/id_rsa
4) 将id_rsa.pub复制到Github
5) 检查连接是否设置正确
ssh -T git@github.com
...有着令人充满期望的结果
您已成功验证身份,但GitHub不提供shell访问权限。
据我所知,这个错误可能是由于Git的地址未被包含在/.ssh/known_hosts文件中引起的。问题是(就我所知),它会自动插入例如“ssh -T”的方式,因此我很怀疑这是否是原因。虽然我也尝试过:
ssh-keyscan -t rsa github.com | ssh-keygen -lf -
另一个可能的问题是我的私钥访问范围对于用户来说太过广泛,但我也已经检查过了。
总之,我现在不知道该如何解决这个问题,所以非常感谢任何帮助。提前致谢。
ssh git@github.com
,则应该没问题。但是,您的git
可能没有使用与您的ssh
命令相同的 ssh 配置。您是如何安装 Git 和 ssh 的?可能它没有与您的 ssh 代理通信。尝试在与ssh
工作的同一 shell 中运行git
命令。 - Schwerngit@github.com:username/github-remote.git
中间不应该有空格。 - Dietrich Epp