【发布时间】:2018-11-06 11:48:54
【问题描述】:
我最近通过 Cygwin 在 Win10 上建立了一个 git 存储库,现在我正试图让它在 github 上跟踪一个远程 repo。
问题是,在添加了这样的遥控器之后:
git remote add github-remote git@github.com:username/github-remote.git
我无法以任何可能的方式访问它(推送、获取、通过“显示”显示附加信息)。我得到的只是:
git@github.com:权限被拒绝(公钥)。
致命:无法从远程存储库读取。
请确保您拥有正确的访问权限和存储库 存在。
虽然我知道这个话题已经讨论了很多,但我发现的解决方案都没有真正有用。这就是为什么我决定发布另一个问题。
这是我做的,一步一步:
1) 生成 pub-priv 密钥对:
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-agent 通信。尝试在ssh工作的同一 shell 中运行git命令。 -
git@github.com: username/github-remote.git中间不能有空格 -
@Schwern 至于 git,我从 git-scm.com/download/win 下载了 .exe。另一方面,SSH 我必须安装为 Cygwin 的包,它是 Cygwin 的薄荷糖,我在其中运行所有命令,所以我想这很好。如果我误解了您的意思,请随时详细说明,我将不胜感激。
-
@DietrichEpp 感谢您指出这一点,尽管我在发布时意外添加了空间。它不在实际地址中。
标签: git github git-remote