git - VS Code / Bitbucket / SSH - 权限被拒绝(公钥)
问题描述
我正在尝试通过 ssh 从 vscode 访问 bitbucket,但总是获得权限被拒绝 (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)
- 通过 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
推荐阅读
- python-3.x - 运行 GPT 命令时如何将变量作为输入
- rx-java - RxJava groupby 时间限制
- c# - 比较两个动态数据表并突出两者之间的差异
- php - Symfony 3.4 网站在 js 和 css 资源上返回 404
- shell - 当日期是变量时如何在linux shell中增加日期
- kubernetes - 如何在 istio 中建立安全的服务到服务通信?
- azure - 存储是 Iaas 还是 Paas
- django - 在 Django CreateView 中保存反向外键
- mysql - MySQL - 根据不同的条件忽略某些行
- react-native - 无法通过 npm start 启动 expo cli