Git配置多个SSH KEY
1.生成二个ssh key
生成ssh key时同时指定保存的文件名
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "xx-email"
$ ssh-keygen -t rsa -f ~/.ssh/oschina2_id_rsa -C "xx-email"
上面的id_rsa
就是我们指定的文件名,这时~/.ssh
目录下会多出 id_rsa
和id_rsa.pub
两个文件,id_rsa.pub
里保存的就是我们要使用的key。
上面的oschina2_id_rsa
就是我们指定的文件名,这时~/.ssh
目录下会多出oschina2_id_rsa
和oschina2_id_rsa.pub
两个文件,oschina2_id_rsa.pub
里保存的就是我们要使用的key。
查看你的 public key,并把他添加到码云(Gitee.com),复制内容填入即可 SSH key添加地址
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
2.配置config文件
个人本地的config( 没有生成一个):
$ cat config
#default oschina.net user(hs@xx.com)
Host 192.168.10.?
IdentityFile ~/.ssh/localtest
Host git.oschina.net
HostName git.oschina.net
User hs@xx.com
IdentityFile ~/.ssh/id_rsa
Host oschina2
HostName git.oschina.net
User perry
IdentityFile ~/.ssh/oschina_id_rsa
Host example # 关键词
HostName example.com # 主机地址
User root # 用户名
IdentityFile ~/.ssh/id_rsa # 认证文件
# Port 22 # 指定端口
192.168.10.?表示匹配 192.168.0.[0-9] 的 IP,是内网服务器的地址,使用localtest
git.oschina.net oschina2
通过执行 $ ssh example
我就可以登录我的服务器。而不需要敲更多的命令 $ ssh root@example.com
。又如我们想要向服务器传文件 $ scp a.txt example:/home/user_name
。比以前方便多了。
3.配置全局默认的用户
$ git config --global user.name 'perry'
$ git config --global user.email 'xx.email'
4. 测试是否配置成功
ssh -T git@+你的主机/别名
$ ssh -T git@git.oschina.net
$ ssh -T git@oschina2
若返回
Welcome to Git@OSC, yourname(你对应key的用户名)!
则证明添加成功。
eg:
$ ssh -T git@git.oschina.net
Welcome to Git@OSC, say_hi!
$ ssh -T git@oschina2
Welcome to Git@OSC, byron!
5.sourceTree设置
目的:可以根据不同的项目使用不同的ssh key
不使用全局配置的项目:sourceTree—>项目->仓库—>
远程仓库:将 git@git.oschina.net:byronhs/xx.git
—-改成—> git@oschina2:byronhs/xx.git
.(主要是将git.oschina.net
这个主机改成我们自己配置的 别名
)
高级设置:不使用全局的设置,设置自己的用户名和电子邮件地址(一般对应于我们设置的第二个ssh key)
Ps:不是自己项目,名字写拥有者