【问题标题】:VS Code / Bitbucket / SSH - Permission denied (publickey)VS Code / Bitbucket / SSH - 权限被拒绝(公钥)
【发布时间】:2019-10-22 17:13:17
【问题描述】:

我正在尝试通过 ssh 从 vscode 访问 bitbucket,但总是得到 permission denied (publickey)

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)
  • git for windows (2.20.1.windows.1)
  • bitbucket 通过 ssh
  • 我认为我正在使用后来的 Windows10 更新之一中引入的 ssh-agent(不知道如何检查,但 windows ssh-agent 服务正在运行)。
  • 我的用户文件夹(包含 /.ssh)和 repo 的工作副本位于网络驱动器上

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

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

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 做到了!非常感谢!
    • 我花了很长时间才找到正确的答案。这终于做到了。
    • 您需要以管理员身份运行 Windows Powershell(右键单击“以管理员身份运行”)。否则你会得到 Access is Denied 错误。
    • 遇到同样的问题,我尝试了这个解决方案,现在在尝试克隆 repo ```Cloning into 'C:\Users\yamab\Source\Repos\prdb-intro' 时出现此消息。 .. 错误:无法生成 C:/Windows/System32/OpenSSH/ssh.exe:没有这样的文件或目录 克隆远程存储库时遇到错误:Git 因致命错误而失败。无法分叉''''
    • 对我来说,这行得通。但是每次我启动我的电脑时,我都必须一次又一次地这样做
    【解决方案2】:

    除了 Alexandr Pilgun 的回答之外,还有一些对我产生影响的额外信息。

    在第 4 步,我需要提供双反斜杠。 VSCode 抱怨找不到 ssh.exe。使用双反斜杠如下所示:

    git config --global core.sshCommand C:\\Windows\\System32\\OpenSSH\\ssh.exe
    

    我使用的是 Windows 10.0.19042 企业版

    【讨论】:

    • 也试过这个解决方案,我知道有 ````Cloning into 'C:\Users\yamab\Source\Repos\prdb-intro'... C:\\Windows\\System32 \\OpenSSH\\ssh.exe: C:\Windows\System32\OpenSSH\ssh.exe: No such file or directory 克隆远程存储库时遇到错误:Git 因致命错误而失败。无法从远程存储库中读取。请确保您具有正确的访问权限并且存储库存在。尝试克隆存储库时''''
    【解决方案3】:

    如果有人在 mac 中寻找答案

    ssh-agent

    ssh-add, 在此命令后添加您的密码

    【讨论】:

      【解决方案4】:

      使用 Windows 安全通道库进行 HTTPS 连接为我解决了这个问题。

      【讨论】:

        【解决方案5】:

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

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

        我希望这可以帮助你们中的一些人快速解决问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-11
          • 2015-05-10
          • 2019-11-23
          • 1970-01-01
          • 1970-01-01
          • 2019-11-24
          • 2014-11-08
          • 2019-03-11
          相关资源
          最近更新 更多