VS代码/ Bitbucket / SSH-权限被拒绝(公钥)

时间:2019-06-07 07:55:24

标签: git ssh visual-studio-code windows-10 bitbucket

我正在尝试通过vscode通过ssh访问bitbucket,但始终会获得权限被拒绝(公钥)

SSH密钥位于~\.ssh\下,公共密钥已在bitbucket/settings/security/sshkeys中正确设置。按键已经过测试并且可以正常工作!

启动后,我可以从Windows命令提示符和Powershell正常访问我的存储库,但不能从git bash或vscode中访问。手动在git bash中设置ssh并启动vscode可以:

eval $(ssh-agent)
ssh-add /c/Users/username/.ssh/privatekey
code

我的环境:

  • Windows 10企业版(1803 / 17134.765)
  • Visual Studio代码(1.35.0)
  • Windows的
  • git(2.20.1.windows.1)
  • 通过ssh的bitbucket
  • 我认为我正在使用Windows10后续更新之一中引入的ssh-agent(不确定如何检查,但Windows ssh-agent服务正在运行)。
  • li>
  • 我的用户文件夹(包含/.ssh)和存储库的工作副本位于网络驱动器上

对我来说,问题归结为一个问题: 为什么vscode不使用Windows本机,正确设置ssh服务,而是依赖git bash ssh代理?

免责声明:我花了几个小时阅读有关此主题的主题并摆弄设置。我怀疑该问题与Windows10下网络驱动器的延迟部署有关(一个已知问题)。我的Windows组策略设置为在启动/登录时等待网络。

4 个答案:

答案 0 :(得分:1)

Windows 10允许使用所有默认的OpenSSH工具。但是,每次我尝试通过SSH从Github,Gitlab或Bitbucket克隆存储库时,git都会抛出拒绝权限。您需要进行一些调整才能使其正常工作。

  1. 确保已启用ssh-agent服务,或在Powershell中运行:

Get-Service -Name ssh-agent | Set-Service -StartupType Manual

  1. ssh-agent
  2. ssh-add
  3. git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe

答案 1 :(得分:1)

除了亚历山大·皮尔根(Alexandr Pilgun)的回答外,一些其他信息对我也有所不同。

在第4步中,我需要提供两个反斜杠。 VSCode抱怨找不到ssh.exe。使用双反斜杠看起来像这样:

layout.children[1] = keywords

我正在使用Windows 10.0.19042 Enterprise

答案 2 :(得分:0)

通过使用Windows Secure Channel库进行HTTPS连接为我解决了该问题。

enter image description here

答案 3 :(得分:0)

from here

您还可以在VSCODE中“在终端中打开”文件夹。

enter image description here

从那里,您可以继续推送更新git push origin master 然后它要求输入密码,只需输入并输入,然后它将继续。

我希望这可以帮助某些人快速解决问题。