文档首页> IDC服务> 蓝易云:Git多账号管理通过ssh公钥的方式

蓝易云:Git多账号管理通过ssh公钥的方式

发布时间:2025-12-22 00:01       

用 SSH 公钥做 Git 多账号管理,核心思路就一句话:“同一个域名下,用不同的 Host 别名绑定不同私钥”,让 SSH 在连接时自动选对身份。这样既不串号,也不需要频繁切换登录状态,工程上最稳。🙂


1)准备两套(或多套)独立密钥:一账号一把钥匙 🔐

建议优先用 ed25519(更短更安全、性能更好):

# 账号A(例如:工作)
ssh-keygen -t ed25519 -C "work" -f ~/.ssh/id_ed25519_work

# 账号B(例如:个人)
ssh-keygen -t ed25519 -C "personal" -f ~/.ssh/id_ed25519_personal
​

生成后你会得到:

  • 私钥:~/.ssh/id_ed25519_work(严禁外泄)
  • 公钥:~/.ssh/id_ed25519_work.pub(提交到代码托管平台)

公钥需要分别添加到对应平台的“SSH Keys”里;一把公钥对应一个账号身份。


2)让 SSH 自动选钥:配置 ~/.ssh/config(关键动作)✅

在 ~/.ssh/config 写两段 Host 别名,把“域名 + 私钥”固定绑定:

# 工作账号
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work
  IdentitiesOnly yes

# 个人账号
Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal
  IdentitiesOnly yes
​

为什么要 IdentitiesOnly yes?
它会强制只用你指定的私钥,避免系统把一堆钥匙都试一遍,触发“认证失败/尝试次数过多”的典型坑。😄


3)把私钥加载进 ssh-agent(避免每次输密码)🚀

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_work
ssh-add ~/.ssh/id_ed25519_personal
​

4)克隆与远程地址:用 Host 别名区分账号(最容易用对)

以后你不要再用 git@github.com:...,而是用别名:

# 用工作身份克隆
git clone git@github-work:org/repo.git

# 用个人身份克隆
git clone git@github-personal:username/repo.git
​

如果仓库已经存在,直接改远程地址即可:

git remote set-url origin git@github-work:org/repo.git
​

5)提交人信息也要隔离:按仓库设置 user.name / user.email 🧾

SSH 只决定“你是谁在连仓库”,而提交记录里显示的作者信息由 Git 配置决定。建议按项目目录设置:

git config user.name "WorkName"
git config user.email "work@example.com"
​

这样工作仓与个人仓的提交归属不会混。


6)一眼确认有没有选对钥:测试命令

ssh -T git@github-work
ssh -T git@github-personal
​

若仍不确定,用更强的定位方式(看实际使用了哪把钥):

ssh -vT git@github-work
​

快速对照表(方便团队规范化落地)📌

场景 Host 别名 私钥文件 远程地址写法
工作账号 github-work id_ed25519_work git@github-work:org/repo.git
个人账号 github-personal id_ed25519_personal git@github-personal:user/repo.git

常见故障一句话定位(不绕弯)

  • Permission denied (publickey):平台没添加对应公钥,或远程地址没用别名导致选错钥。
  • “尝试次数过多/认证失败”:~/.ssh/config 缺 IdentitiesOnly yes,或 agent 里加载太多钥。
  • 改了 config 不生效:确认文件权限(~/.ssh 与私钥不应过宽),并用 ssh -vT 看实际命中配置。

把这套方案落地后,你的多账号管理会变成“写对一次,长期稳定”,对个人电脑和团队协作都非常友好。