有时候我们可能需要在一太电脑上使用多个Git账户的情况,这时候我们就需要针对多个平台和账户进行不同的设置。
思路
同时管理多个SSH key。
解决方案
生成多个SSH key
这里使用one two两个账户进行举例
注意在生成多个SSH key的时候一定要在~/.ssh 目录下进行,否则生成的SSHkey不会再~/.ssh 目录下。
以下有操作都是在~/.ssh目录下进行的。
在生成之前尽量删除此目录下的所有文件再进行,以免出现不必要的问题。
ssh-keygen -t rsa -C "one@email.com"
ssh-keygen -t rsa -C "two@email.com"
再输入命令行的时候在第一次提示Enter file in which to save the key
的时候对ssh文件进行重命名(id_rsa_one和id_rsa_two),这是就会生成一下目录中的四个文件。
两份包含私钥和公钥的4个文件。
添加私钥
在对应平台添加私钥的地方,把两个账号生成的私钥添加进去。
获取私钥
cat ~/.ssh/id_rsa_one.pub
cat ~/.ssh/id_rsa_two.pub
其中(id_rsa_one.pub和id_rsa_two.pub)是之前对的ssh文件重命名的文件名
创建config文件
在~/.ssh目录下创建一个config文件
touch config
会在~/.ssh目录下生成一个空的config文件,我们在文件中添加以下内容。
#git server one
Host one.aliyun.com #别名
Hostname code.aliyun.com #真实域名
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_one #ssh 文件路径
User one
#git server two
Host two.aliyun.com
Hostname code.aliyun.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two
User two
远程测试【可跳过】
ssh –T one.aliyun.com
ssh –T two.aliyun.com
使用
- clone到本地
原来的写法
git@code.aliyun.com:项目路径.git
现在的写法
git clone git@one.github.com:项目路径.git
git clone git@two.github.com:项目路径.git
- 给仓库设置局部用户名和邮箱【可不设置】
git config user.name "one_name" ; git config user.email "one_email"
git config user.name "two_name" ; git config user.email "two_email"
小结
此篇文章是自己通过网上查询然后自己实践总结而得。由于本人知识有限,难免总结得很完整,如果读者遇到什么问题,欢迎留言讨论,共同学习。