本地ssh key连接多个git账号

在开发过程中,可能需要在本地同时连接到多个git账户,如公司内部git和github,但是一个用户的ssh key只能连接到一个git账户,这就需要创建多个ssh key,分别连接到不同的账户。具体步骤如下:
1.生成ssh key
ssh-keygen -t rsa -b 4096 -C "[email protected]"
1
1
 
1
ssh-keygen -t rsa -b 4096 -C "[email protected]"
默认生成的key为 ~/.ssh/id_rsa,生成的两个key名称需要不同,这里名称设为id_rsa_inner和id_rsa_outer。
命令执行完后会在~/.ssh/目录下生成id_rsa_xxx和id_rsa_xxx.pub文件。

2.在git中添加ssh key
以github为例,点击settings —> SSH keys and GPG keys —> New SSH key,将id_rsa_outer文件中的内容添加进来。
同理,在内部git中添加id_rsa_inner ssh key。

3.本地配置
在~/.ssh/目录下创建config文件,内容如下:
 Host github.com                                                                  
     HostName github.com                                                          
     PreferredAuthentications publickey                                           
     IdentityFile ~/.ssh/id_rsa_outer                                            
                                                                                 
Host git.xxx.com                                                              
     HostName git.xxx.com                                                    
     PreferredAuthentications publickey                                           
     IdentityFile ~/.ssh/id_rsa_inner   
9
9
 
1
 Host github.com                                                                  
2
     HostName github.com                                                          
3
     PreferredAuthentications publickey                                           
4
     IdentityFile ~/.ssh/id_rsa_outer                                            
5
                                                                                 
6
Host git.xxx.com                                                              
7
     HostName git.xxx.com                                                    
8
     PreferredAuthentications publickey                                           
9
     IdentityFile ~/.ssh/id_rsa_inner   
其中Host为别名,HostName为git的地址。即将本地的两个ssh key与不同的git仓库绑定起来。

4. 测试连接
ssh -T [email protected]
1
1
 
1
ssh -T git@github.com
如果出现以下内容,则表示连接成功。
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
1
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
注:可以使用 ssh -vT [email protected] 开启Debug,查看具体的连接过程。




猜你喜欢

转载自www.cnblogs.com/lolau/p/9921780.html