我在Windows上使用Git for Windows 2.40.0.windows.1我想使用SSH而不是HTTPS连接到Github,所以我设置了一个SSH密钥对,并将公钥添加到我的Github配置文件中。
我已经设置了SSH代理服务并将我的私钥添加到其中。Get-Service ssh-agent
确认代理正在运行。ssh-add.exe -l
确认我的密钥已添加到代理。当按照SSH key setup的建议运行ssh -T git@github.com
时,我成功地通过了身份验证。
密钥不存储在标准的~/.ssh/id_rsa
位置,它有一个密码。我不确定这是否相关,但我认为无论如何都应该添加这一点。
- 然而 *,在将SSH远程URL添加到我的项目后,每当我运行
git push
时,它都会给我熟悉的permission denied (pubickey)
:
PS > git push origin main
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.
这个问题也会发生在Gitlab上,假设任何到git remote的SSH连接都是如此。值得注意的是,当我在Linux系统上使用git时,这个问题不会发生,所以这让我相信这是Git for Windows或我的设置的问题。
我能在这里做什么?是否有我忽略的任何配置?如何从git push
命令中获取更多信息?(添加--verbose
实际上并没有添加更多的输出)
1条答案
按热度按时间jpfvwuh41#
正如user7860670的评论所指出的,Git for Windows附带了自己的SSH捆绑版本。因此,每当我使用git命令时,它都会忽略我的SSH代理配置,因为我没有使用捆绑的SSH代理。
解决方案是将Git for Windows配置为使用外部SSH命令而不是其捆绑的命令。这可以在安装过程中设置,也可以通过再次运行安装文件来设置。