git - VS Code/Bitbucket/SSH - 权限被拒绝(公钥)

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

我正在尝试通过 ssh 从 vscode 访问 bitbucket,但总是被拒绝权限(公钥)。

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

启动后,我可以从 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)
  • 通过 ssh 获取比特桶
  • 我想我正在使用后来的 Windows10 更新之一中引入的 ssh-agent(不知道如何检查,虽然 windows ssh-agent 服务正在运行)。
  • 我的用户文件夹(包含/.ssh)和 repo 的工作副本位于网络驱动器

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

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

    最佳答案

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

  • 确保 ssh-agent 服务已启用,或在 Powershell 中运行(以管理员身份):
  • Get-Service -Name ssh-agent | Set-Service -StartupType Manual
  • ssh-agent
  • ssh-add
  • git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe
  • 关于git - VS Code/Bitbucket/SSH - 权限被拒绝(公钥),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56490194/

    相关文章:

    Git 子模块最佳实践 - 始终使用 ssh 协议(protocol)而不是 https?

    git - 如何将 Mediawiki 安装从 Subversion (SVN) 迁移到 Git

    git - 你如何从 "autostash"获得丢失的 `git rebase --autostash` 提交

    Bash while 循环仅在 body 包含 ssh 时迭代一次

    visual-studio-code - 更改 VSC Jupyter Notebook 输出的 MIME 类型

    git - Git 如何访问我的 GitHub 凭据?

    linux - Bash 脚本从 .txt 文件中读取主机名并将其放入 ssh 变量中

    git - 找出存储库或代理是否阻止了我的连接

    node.js - 如果 "posttest"脚本失败, yarn "test"脚本将不起作用

    java - Spring @Autowired - 没有 'com.pc.visitor.visitorrepository' 类型的合格 bean