原理
默认 id_rsa 是第一个,第二个自定义文件名,比如:
- 第一个:默认全局
~/.ssh/id_rsa(日常通用) - 第二个:自定义
~/.ssh/id_rsa_work(公司/另一个GitHub/GitLab)
第一步:生成第一个 SSH Key(默认)
打开终端(Git Bash / Mac/Linux 终端 / PowerShell)
ssh-keygen -t ed25519 -C "个人邮箱@gmail.com"
- 一路回车,不设置密码 或按需设置
- 生成路径:
~/.ssh/id_rsa、id_rsa.pub
推荐 ed25519 算法,比 rsa 更安全更短
第二步:生成第二个 SSH Key(自定义名称)
ssh-keygen -t ed25519 -C "公司邮箱@xxx.com"
关键:提示输入文件路径时,手动输入
/Users/你的用户名/.ssh/id_rsa_work
Windows 示例:
C:\Users\你的用户名\.ssh\id_rsa_work
然后一路回车,生成第二套密钥:
id_rsa_work、id_rsa_work.pub
第三步:创建 config 文件区分两个Key
进入 .ssh 目录
cd ~/.ssh
新建/编辑 config 文件
touch config
nano config
粘贴以下配置(直接复制改下主机名即可)
# 第一个账号:个人 GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# 第二个账号:公司 GitLab / 另一个GitHub
Host gitwork.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_work
保存退出:nano 按 Ctrl+O 回车,Ctrl+X
第四步:加载私钥到本地 ssh-agent
这一步99%的情况下可以直接省略,不影响使用。只有极老的系统 / 手动关闭了自动代理 才需要第四步。
# 启动代理
eval "$(ssh-agent -s)"
# 添加两个私钥
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_work
第五步:分别复制公钥到代码平台
- 个人公钥:
~/.ssh/id_rsa.pub - 公司公钥:
~/.ssh/id_rsa_work.pub
复制全文,分别添加到 对应 GitHub/GitLab 账号的 SSH Key 设置里
第六步:测试连通
# 测试个人
ssh -T git@github.com
# 测试公司(用配置里的别名 gitwork.com)
ssh -T git@gitwork.com
出现 Hi xxx! You've successfully authenticated 就成功了
克隆仓库用法
- 个人仓库正常克隆:
git clone git@github.com:xxx/xxx.git
- 公司仓库用别名:
git clone git@gitwork.com:公司账号/仓库.git
