You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一谷歌认证Bitbucket账号多工作区SSH免修改配置咨询

问题描述

我有两个Bitbucket工作区,Bitbucket要求不同工作区使用独立SSH密钥。当前我的.ssh/config配置如下:

Host bitbucket.org
  IdentitiesOnly yes
  AddkeysToAgent yes 
  IdentityFile ~/.ssh/bitbucket
  IdentityFile ~/.ssh/id_ed25519

但目前连接其中一个工作区时,必须注释另一个密钥并保存配置文件。想知道有没有办法无需修改配置就能同时操作两个工作区的代码库?

【补充说明】我使用的是同一谷歌认证账号。之前参考过两个关于多SSH密钥的问题,但都是针对多账号场景,可在配置文件中区分账号。而我作为自由职业者,没有为每个客户创建独立账号,仅由客户提供工作区代码库的访问权限。另外查看了Bitbucket官方的Jira问题(BCLOUD-20631),内容翻译如下:

该问题是用户反馈同一账号下不同Bitbucket工作区无法使用不同SSH密钥认证的问题,Atlassian官方目前的回复是:当前Bitbucket Cloud的设计是一个SSH公钥只能关联到一个工作区,同一账号下的多个工作区无法共享同一个SSH密钥,且暂不支持同一账号下为不同工作区配置不同SSH密钥的功能,官方将此问题列为改进需求,后续会关注社区反馈并考虑是否实现该功能。

可行解决方案

你可以通过在.ssh/config中为Bitbucket设置不同的Host别名,并分别指定对应的密钥,同时配合修改Git仓库的远程地址来实现无需切换配置即可访问不同工作区。具体步骤如下:

  1. 修改.ssh/config配置
    将原有配置替换为以下内容,每个工作区对应一个Host别名:

    Host bitbucket-workspace1
      HostName bitbucket.org
      IdentitiesOnly yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/bitbucket  # 对应第一个工作区的密钥
    
    Host bitbucket-workspace2
      HostName bitbucket.org
      IdentitiesOnly yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_ed25519  # 对应第二个工作区的密钥
    
  2. 修改Git仓库的远程地址
    对于第一个工作区的代码库,将远程地址中的bitbucket.org替换为bitbucket-workspace1:

    git remote set-url origin git@bitbucket-workspace1:<工作区1用户名>/<仓库名>.git
    

    对于第二个工作区的代码库,替换为bitbucket-workspace2:

    git remote set-url origin git@bitbucket-workspace2:<工作区2用户名>/<仓库名>.git
    

这样配置后,访问不同工作区的仓库时,SSH会自动匹配对应的Host别名和密钥,无需再手动修改.ssh/config文件。

另外,也可以在克隆仓库时直接使用别名地址,避免后续修改:

# 克隆工作区1的仓库
git clone git@bitbucket-workspace1:<工作区1用户名>/<仓库名>.git

# 克隆工作区2的仓库
git clone git@bitbucket-workspace2:<工作区2用户名>/<仓库名>.git

内容的提问来源于stack exchange,提问作者Simple Fellow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 21:41:12