首先进入保存秘钥的目录,该目录下保存秘钥,需要提醒的是这个目录是默认隐藏的,可以打开Finder,同事按下command + shift + .即可显示全部隐藏文件
cd ~/.ssh
然后,根据账户邮箱生成秘钥。
例如我有两个账户:test1@163.com 和test2@163.com,则命令为:
ssh-keygen -t rsa -C "test1@163.com"
生成秘钥后,会提示:
Generating public/private rsa key pair.
//这里是要输入生成文件的名称例如:id_rsa_test1
Enter file in which to save the key (/Users/test/.ssh/id_rsa):
//这一步是要用户确认是否输入密码,如果不需要,直接点击回车
Enter passphrase (empty for no passphrase):
//再次确认
Enter same passphrase again:
至此已经生成test1的ssh-key
同样的步骤生成test2的ssh-key
输入命令查看
ls
显示为:
config
id_rsa_test1
id_rsa_test1.pub
id_rsa_test2
id_rsa_test2.pub
分别添加他们的公钥到各自的github账户中
接着在config文件配置多个ssh-key
打开目录,看看有没有config文件,没有的话新建一个
open ~/.ssh/
分别配置test1和test2的ssh-key,各个字段的含义如下
|键|值|规则
|Host| 主机 |最终用来代替@后面的部分,相当于用host替换hostname
|Hostname |主机名 必须写正确,是你的git公有地址,比方说 github.com,真正请求的地址
|IdentityFile| 你的rsa具体路径地址
|User |用户 |建议使用Host的前面部分,后面具体clone操作都会用到这个user
配置完成后config如下:
#test1
Host tes1
Hostname github.com
IdentityFile ~/.ssh/id_rsa_test1
User git
#test2
Host test2
Hostname github.com
IdentityFile ~/.ssh/id_rsa_test2
User git
测试连接
执行命令
ssh -T git@test1
连接成功
Hi test1! You've successfully authenticated, but GitHub does not provide shell access.
执行命令
ssh -T git@test2
连接成功
Hi test2! You've successfully authenticated, but GitHub does not provide shell access.
到此配置成功
克隆项目
举例:
原始的路径为git@github.com:injetlee/Python.git
如果使用test1 clone项目,执行以下命令:
git clone git@test1:injetlee/Python.git
如果使用test2 clone项目,执行以下命令:
git clone git@test2:injetlee/Python.git
提交代码时,对于不同的项目使用不同的用户
在项目1下使用用户test1提交代码,则需要在项目1的根目录下执行以下命令
git config user.name “test1”
git config user.email "test1@163.com"
在项目2下使用用户test2提交代码,则需要在项目2的根目录下执行以下命令
git config user.name “test2”
git config user.email "test2@163.com"
配置完成后,通过以下命令查看配置是否正确
git config user.name
git config user.email
可以看到两个项目的name和email是不一样的,此时提交代码也能看到是不同用户提交的
至此可以愉快的玩耍了!!