Bitbucket Cloud SSH主机密钥轮换后无法执行push/pull/fetch,求解决办法
1. 清除旧的Bitbucket SSH主机密钥
打开终端,执行命令删除本地存储的Bitbucket相关密钥:
ssh-keygen -R bitbucket.org
若使用过特定端口访问,也需一并清除,比如:
ssh-keygen -R [bitbucket.org]:7999
2. 手动获取并添加新主机密钥
在终端执行以下命令获取Bitbucket当前的主机密钥:
ssh-keyscan bitbucket.org
你会收到类似如下的输出(以实际返回内容为准):
bitbucket.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
bitbucket.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
将这些密钥添加到本地SSH信任列表:
ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
Windows系统用户路径为C:\Users\<你的用户名>\.ssh\known_hosts,可通过PowerShell执行上述命令。
3. 验证SSH连接有效性
执行以下命令测试是否能正常连接Bitbucket:
ssh -T git@bitbucket.org
若看到logged in as <你的用户名>.的提示,说明连接成功,此时再尝试push/pull/fetch操作。
4. 检查Git仓库远程地址配置
确认本地仓库的远程地址为SSH格式,执行:
git remote -v
如果显示为HTTPS地址,切换为SSH格式:
git remote set-url origin git@bitbucket.org:<你的用户名>/<仓库名>.git
5. 排查代理或防火墙干扰
若使用SSH代理或公司防火墙,需确认它们允许新的Bitbucket主机密钥通过。可临时关闭代理测试,或联系网络管理员更新规则。
内容的提问来源于stack exchange,提问作者Misko Mali

