本地ssh key连接多个git账号

SSH介绍:SSH(安全shell)通常用于访问远程Linux系统。但其身份验证机制(私有本地密钥公共远程密钥配对)用于保护各种在线服务,从GitHubLaunchpad到运行在Microsoft Azure云上 Linux 。

从Linux生成这些密钥非常简单。window环境下需要ssh client, 较好的选择是PuTTY 和Git Bash。

SSH密钥由一对文件组成。一个是私钥,永远不应该与任何人共享。另一个是公钥。另一个文件是一个公钥,允许您登录到您提供的容器和VM。生成密钥时,您将使用ssh-keygen密钥存储在安全位置,以便在连接到实例时绕过登录提示。

问题:在开发过程中,可能需要在本地同时连接到多个gitlab账户,但是一个用户的ssh key只能连接到一个git账户,这就需要创建多个ssh key,分别连接到不同的账户。

解决:1.在下载好的Git中的bin目录下(一般是 C:Program FilesGitin)打开bash.exe输入命令ssh-keygen -t rsa -C "username" (注:username为你git上的用户名)

           2.在~/.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   

使用git clone的时,可能会出现Permission denied(public key)错误,是因为git默认寻找id_rsa文件作为public key,使用ssh-add -l 发现密钥列表为空,所以使用$ ssh-add ~/.ssh/github_rsa添加密钥,再测试连接$ ssh -T git@github.com

PS:创建密钥的时候,是指定email,所以我们创建的密钥是跟email有关系,当我们有网站是用的用一个email的时候,可以不用创建新的密钥,可以直接用之前创建的密钥

原文地址:https://www.cnblogs.com/juicy-initial/p/13172607.html