做了一阵子Git托管,发现很多人还卡在Bitbucket新旧界面切换的坎上。尤其是2021年7月那次改版之后,原来在个人设置里直接填SSH Key的地方挪了窝,不少同事第一反应是“入口怎么没了”。这篇文章就专门对比一下旧版和新版Bitbucket添加SSH Key的完整流程,把入口差异、填表字段、保存逻辑和验证方式都理清楚,顺便把我自己踩过的坑也一并交代了。
1. 为什么添加SSH Key的入口会发生这么大变化
1.1 账户体系的调整是根源
旧版Bitbucket的SSH Key管理是挂在Bitbucket账号下的,登录后进Personal settings就能看到SSH keys选项,逻辑非常简单:这个密钥属于当前登录的Bitbucket用户。新版则把SSH Key的管理收拢到了Atlassian账户层面,因为Bitbucket已经全面切换到Atlassian账号体系。也就是说,你添加的SSH Key不再只服务于某一个Bitbucket工作区,而是绑定在整个Atlassian账户名下,所有关联的Bitbucket工作区、Jira站点、其他Atlassian产品都能共用这套密钥。
这个改动从产品层面看是合理的,统一密钥管理确实比各产品各管一套方便。但对老用户来说,最直观的感受就是入口变了,甚至跳转路径会先经过Atlassian账户管理页面。如果不了解这层背景,就会一直在旧版记忆里的Personal settings里找那个熟悉的SSH keys按钮,结果发现位置完全不一样。
1.2 改版后Bitbucket的Workspace概念
改版后Bitbucket引入了Workspace的概念,替代了原来的Team和User主页。原来的个人仓库地址从bitbucket.org/username/repo变成了bitbucket.org/workspace/repo,虽然很多老仓库做了自动跳转,但权限模型已经重构了。SSH Key和Workspace的关系也值得说明:新版里密钥挂在Atlassian账户下,但实际访问仓库时,是账户映射到Workspace成员身份,再由Workspace的权限配置决定你能读写哪些仓库。
这就会引出一些奇怪的现象:假设你在公司A的Workspace下用账户A添加了SSH Key,换到公司B的Workspace时,如果两个Workspace都绑定了你的Atlassian账户,那么同一把密钥可以访问两个Workspace下你有权限的仓库。这种跨工作区共用密钥的机制,是旧版没有的,也是很多人在新版配置时感到困惑的点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 旧版流程回顾:一张表单走天下
2.1 旧版入口定位
旧版Bitbucket的界面以蓝色和灰色为主,左侧菜单结构比较清晰。登录后点击右上角头像,下拉菜单里直接有Personal settings,进去之后左侧列表有一项是SSH keys,点击就能进入管理页。整体路径就是:头像 → Personal settings → SSH keys。
那个时代还有个习惯性操作:进入SSH keys页面后,列表会展示你已经添加过的密钥,包括Label、指纹(Fingerprint)、添加时间等。页面顶部有一个Add key按钮,点击后弹出表单,需要填写两个字段:
- Label:给密钥起个名字,比如“MacBook Pro 2023”或“company-workstation”
- Key:粘贴公钥内容,也就是id_rsa.pub或id_ed25519.pub文件里的完整文本
表单很简洁,没有额外的密钥类型或过期时间选项,保存后直接在列表里能看到新密钥。整个过程30秒内能完成,不需要任何额外的账户验证或跳转。
2.2 旧版密钥生成的配套命令
旧版时代,大家生成密钥的方式也比较统一。我一般推荐用Ed25519算法,因为密钥短、安全性高、兼容性也够好。生成命令如下:
bash复制ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/bitbucket_ed25519
-t指定算法,-C是注释,通常会填邮箱便于识别,-f指定生成的文件路径。如果直接用默认路径,按回车用默认的id_ed25519也行。生成后,把公钥内容复制出来:
bash复制cat ~/.ssh/bitbucket_ed25519.pub
复制以ssh-ed25519开头的一整行内容,粘贴到Bitbucket的Key输入框里,Label随便填一个方便识别的名字,提交保存。为了测试是否生效,执行:
bash复制ssh -T git@bitbucket.org
旧版返回信息里面会直接显示你的用户名,类似“authenticated via ssh key as username”,看到这个就说明密钥添加成功,可以正常拉取和推送仓库了。
2.3 旧版容易忽略的两个细节
旧版虽然流程简单,但有两个细节需要留意。第一个是如果你
