Linux 服务器用 SSH 拉取多个 Git 工程

在一台 Linux 服务器上用 SSH 拉取两个 Git 工程,而这两个工程对应的是 不同的 Git 账号(SSH Key),做法:


使用 SSH Config 配置多个 Git 账号

场景假设:

  • 工程 A 的仓库地址:git@github.com:company-a/project-a.git
  • 工程 B 的仓库地址:git@github.com:company-b/project-b.git
  • 工程 A 使用的 SSH key 是:~/.ssh/id_rsa_company_a
  • 工程 B 使用的 SSH key 是:~/.ssh/id_rsa_company_b

1. 生成两个 SSH key(如果没有)

bash 复制代码
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_company_a
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_company_b

然后将这两个 *.pub 公钥添加到各自 Git 平台账号的 SSH 设置中。


2. 编辑 SSH 配置文件

bash 复制代码
vim ~/.ssh/config

添加如下配置(或 nano 编辑):

ssh 复制代码
# 配置公司 A 的 Git 访问
Host github-company-a
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_company_a

# 配置公司 B 的 Git 访问
Host github-company-b
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_company_b

3. 修改 Git 仓库地址,使用 SSH 配置的 Host

⚠️ 注意:不能用默认的 git@github.com ,而要改成你定义的别名 github-company-agithub-company-b

例如:

克隆项目 A:

bash 复制代码
git clone git@github-company-a:company-a/project-a.git

克隆项目 B:

bash 复制代码
git clone git@github-company-b:company-b/project-b.git

✅ 验证

可以通过以下命令验证是否正确加载不同 key:

bash 复制代码
ssh -T git@github-company-a
ssh -T git@github-company-b

📌 提示

  • 确保两个私钥文件权限为 600:
bash 复制代码
chmod 600 ~/.ssh/id_rsa_company_*
  • 如果是在 CI/CD 环境或服务器上部署,可将 ssh/config 和私钥通过环境变量或自动化方式部署上去。

相关推荐
tedcloud1232 分钟前
VoiceStudio 怎么搭建?开源本地 AI 语音克隆、配音与语音工作室
服务器·人工智能·开源·ai编程
风景的人生29 分钟前
Linux虚拟机网络故障排查与解决方案
运维·网络·ssh
..Dauntless..44 分钟前
【Linux】权限问题——拥有者、所属组和其他用户的协调
linux·运维·服务器
平行云1 小时前
实时云渲染信创架构解析:从GPU池化到全栈适配的技术演进
linux·unity·docker·ue5·webgl·数字孪生·实时云渲染
handler011 小时前
【Linux】信号:内核的“敲门声”
linux·运维·服务器·c++·c·信号·signal
T1mzhou1 小时前
ARM64 Linux 6.10内核启动流程6-psci.c和ATF/U-Boot 的电源接口
linux·服务器·c语言
一支黑色の铅笔1 小时前
VSCode 克隆Git项目
ide·git·vscode
ch3nyuyu2 小时前
驱动第三阶段
linux
云飞云共享云桌面2 小时前
钣金制造研发优化:不采购传统工作站,实现 SolidWorks 团队共用服务器开展三维建模
运维·服务器·网络·数据库·3d·制造
承渊政道2 小时前
星空组网真实体验:Mac远程访问Ubuntu,SSH与HTTP全流程验证
ubuntu·http·macos·ssh·服务器管理·星空组网