Github SSH访问:权限被拒绝(公钥)

3

最近我在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 -

另一个可能的问题是我的私钥访问范围对于用户来说太过广泛,但我也已经检查过了。

总之,我现在不知道该如何解决这个问题,所以非常感谢任何帮助。提前致谢。


嗨,欢迎来到 Stack Overflow。看起来您已经完成了所有正常的 ssh/git 调试步骤。如果可以 ssh git@github.com,则应该没问题。但是,您的 git 可能没有使用与您的 ssh 命令相同的 ssh 配置。您是如何安装 Git 和 ssh 的?可能它没有与您的 ssh 代理通信。尝试在与 ssh 工作的同一 shell 中运行 git 命令。 - Schwern
1
git@github.com:username/github-remote.git 中间不应该有空格。 - Dietrich Epp
@Schwern 关于git,我从https://git-scm.com/download/win下载了.exe文件。另一方面,我必须将SSH安装为Cygwin的软件包,并且是Cygwin的mintty在其中运行所有命令,所以我想这很好。如果我误解了您的意思,请随时详细说明,我会非常感激。 - mdx
@DietrichEpp 感谢您指出这一点,尽管我在发布时意外地添加了空格。它不在实际地址中。 - mdx
1个回答

2
关于 Git,我从 git-scm.com/download/win 下载了 .exe 文件。至于 SSH,则必须作为 Cygwin 的一个包进行安装,而我运行所有命令的是 Cygwin 的 mintty...

混合使用 Cygwin 和 Git For Windows 可能会出现问题。虽然我相信有办法让它们一起工作,但最简单的方法是坚持使用其中一个。

Git For Windows 自带其自己的 "Git Bash" shell,我相信也自带 ssh。使用它即可。

或者,如果您想坚持使用 Cygwin,则可以 从 Cygwin 获取 Git 并使用它。

在 Windows 上通过 Cygwin 运行 Git 也可能很有用。


原来是这样。通过Cygwin安装git就解决了!非常感谢 :) - mdx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接