我开始研究Git和GitHub.
现在,我可以创建我的存储库来练习,我可以在git bash上将提交推送到源存储库(在GitHub中).
但是当我试图推动Visual Studio Code时,我收到了这个错误
权限被拒绝(publickey).
致命:无法从远程存储库读取.
并且无法推送到原始存储库.
但我已经使用git bash上的ssh密钥远程本地存储库到源存储库,我可以在本地存储库和源存储库之间完成推送和拉取.
在其他情况下,他们被要求GitHub凭据推送或同步,但在我的情况下,我不能被问到任何凭证,如ssh密钥.
在这种情况下,我该怎么办?谢谢.
我认为@codewizard的答案是正确的.似乎VS代码只使用'id_rsa.pub'键,它没有使用git.exe配置使用的其他ssh密钥对.(此密钥不是名称id_rsa.)但是在生成新的id_rsa密钥对后,我仍被许可拒绝(publickey).
我在这个博客文章中找到了我的答案,似乎vs代码没有ssh-agent进行交互?
http://blog.alner.net/archive/2015/08/24/vs_code_with_git_ssh_keys_that_use_passphrases.aspx
博客上的解决方案正在进行中
打开命令提示符.
运行"start-ssh-agent"并回答密码短语提示.
运行"代码"以从该环境启动VS代码.
我用git-bash
启动ssh代理: eval "$(ssh-agent -s)"
然后"code"
启动VS Code
注意:正如@JoshuaH在评论中指出的那样,您可以创建一个Windows快捷方式来完成上述步骤.
cmd /c start-ssh-agent & code
git fetch开始工作了.但是我每隔x分钟开始得到一个openssh密码短语框(不定时)
所以我再复查的关键是使用Git的bash再次添加
,然后"ssh-add ~/.ssh/id_rsa"
再git config --global credential.helper wincred
如果每次都需要密码提示,则忽略前两个命令并在VS Code的设置中禁用自动提取.
"git.autofetch": "true"
在VS代码设置中"git.autofetch": "false"