配置多个git账户,以公司和个人为例
1.打开终端输入以下命令
// 生成公司密钥
// -b 4096 指定密钥长度,也可以省略
// 注意:此处省略了保存的文件名,将以默认文件名 id_rsa 生成密钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
// 生成个人密钥
// 注意:需要填写保存的文件名,因为默认文件名 id_rsa 已被使用
ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/id_rsa_personal // id_rsa_personal 为保存的文件名,可自定义
2.出现需要填写密码直接回车跳过即可
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
3.执行以下命令添加到ssh-agent信任列表
//MAC系统
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa_personal
4.打开生成密钥的文件夹
//MAC系统
open ~/.ssh
//Windows系统 右键->Git Bash Here
start ~/.ssh
5.在~/.ssh目录下创建config文件(无后缀,创建时可复制生成的id_rsa改名称即可)
//MAC系统 在终端打开config(也可以双击打开)
open ~/.ssh/config
config文件格式说明
#注释说明文本
Host 名称 (多帐号必须自定义,这个会影响 git 相关命令,例如:Host mygithub 这样定义的话,命令如下,即 git@ 后面紧跟的名字改为 mygithub, git clone git@mygithub:kingBook/test.git)
HostName 服务器地址
IdentityFile 密钥存储路径
PreferredAuthentications 配置登录时用什么权限认证(可选的),可设为publickey,password publickey,keyboard-interactive等
User git 配置使用的用户名,与 git@github.com:kingBook/test.git 中@前的git是一致的)
config文件示例
#公司
Host company
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa
#个人
Host personal
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
6.执行测试命令测试是否配置成功
ssh -T git@github.com
ssh -T git@company
ssh -T git@personal
//添加远程仓库地址
//注意:git@后跟config文件定义的 Host 名称,不再是github.com,github.com时由上面测试命令log出来的用户名确定指向哪个帐号
git remote add origin git@company:kingBook/test.git
git remote add origin git@personal:kingBook/test.git
7.在 https://github.com/ 网页添加生成的密钥。
- 在.ssh下可以看到id_rsa和id_rsa.pub文件(取决于生成时定义的名称),复制id_rsa.pub里的内容,
- 浏览器打开github.com并登录帐号,在Settings->SSH and GPG keys->new SSH key
- 标题任意
- 粘贴id_rsa.pub里的内容
- 点Add SSH key。完成