完整SSH URL克隆Bitbucket仓库遭权限拒绝,简写URL可正常使用
问题原因
当你使用ssh://bitbucket.org/myaccount/myrepo.git这类完整SSH URL时,SSH默认会用当前系统用户名(比如你电脑的登录用户名)尝试登录Bitbucket,但Bitbucket的SSH服务仅接受git作为登录用户,因此会触发「permission denied (publickey)」错误。
而简写的git@bitbucket.org/myaccount/myrepo.git明确指定了登录用户为git,刚好匹配你SSH配置里的密钥规则,所以能正常通过认证。
解决方法
有两种方式可以让完整SSH URL正常工作:
1. 在完整URL中显式指定git用户
直接修改URL,加上git用户标识:
git clone ssh://git@bitbucket.org/myaccount/myrepo.git
这样SSH会以git用户登录,和简写URL的逻辑一致,就能匹配你配置的密钥完成认证。
2. 修改SSH配置,强制指定登录用户
在~/.ssh/config文件里的Bitbucket配置条目添加User git,更新后的配置如下:
Host bitbucket.org User git IdentityFile ~/.ssh/id_mykey_ed25519 IdentitiesOnly yes
修改后,不管用简写URL还是ssh://bitbucket.org/...形式,SSH都会自动用git用户登录,无需手动在URL里指定。
验证配置
可以用以下命令测试SSH连接是否正常:
ssh -T bitbucket.org
如果返回logged in as <你的Bitbucket用户名>.,说明配置生效,此时再用完整SSH URL克隆就不会报错了。
内容的提问来源于stack exchange,提问作者terett
相关产品推荐
相关产品推荐

