GitHub 多账号 SSH 配置
字数: 0 字 时长: 0 分钟
source
生成多个 SSH 密钥
为每个 GitHub 账号生成独立的 SSH 密钥:
sh
# 个人账号密钥
ssh-keygen -t rsa -b 4096 -C "personal@example.com" -f ~/.ssh/id_rsa_personal
# 工作账号密钥
ssh-keygen -t rsa -b 4096 -C "work@company.com" -f ~/.ssh/id_rsa_work
# 组织账号密钥
ssh-keygen -t rsa -b 4096 -C "org@organization.com" -f ~/.ssh/id_rsa_org
配置 SSH 配置文件
编辑 ~/.ssh/config
文件,为每个账号创建独立的配置:
sh
# 个人账号配置
Host personal.github.com
HostName ssh.github.com
Port 443
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
# 工作账号配置
Host work.github.com
HostName ssh.github.com
Port 443
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_work
# 组织账号配置
Host org.github.com
HostName ssh.github.com
Port 443
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_org
# 默认配置(可选)
Host github.com
HostName ssh.github.com
Port 443
User git
配置公钥到对应账号
sh
# 查看公钥内容
cat ~/.ssh/id_rsa_personal.pub
cat ~/.ssh/id_rsa_work.pub
cat ~/.ssh/id_rsa_org.pub
分别复制到对应的 GitHub 账号的 SSH Keys 设置中。
使用方法
根据账号使用对应的别名:
sh
# 个人账号仓库
git clone git@personal.github.com:username/personal-repo.git
# 工作账号仓库
git clone git@work.github.com:company/work-repo.git
# 组织账号仓库
git clone git@org.github.com:organization/org-repo.git
验证配置
测试各个账号的 SSH 连接
sh
# 测试个人账号
ssh -T git@personal.github.com
# 测试工作账号
ssh -T git@work.github.com
# 测试组织账号
ssh -T git@org.github.com
成功的话会看到:Hi username! You've successfully authenticated, but GitHub does not provide shell access.
常见问题及解决方案
Q1: 为什么使用 443 端口?
A: 某些网络环境限制 22 端口的访问,GitHub 提供了 443 端口的 SSH 服务作为替代方案。
自动化脚本
创建便捷的克隆脚本:
ssh_pindemo.sh
bash
#!/bin/bash
git clone git@pindemo.github.com:pindemo/$1.git
cd $(basename $1)
git config user.name "pindemo"
git config user.email "pindemo@example.com"
运行
sh
bash ssh_pindemo.sh XXXX