Git如何配置多个SSH-Key

0. 为什么有此需求

在实际项目开发过程当中,咱们除了有公司gitlab的SSH-key须要配置外,可能还有一些本身的项目放在github之上。在这样的使用情形下就须要配置不一样的SSH-Key来对应不一样的项目环境。git

1. 生成SSH-Key

以windows环境为例。打开Git Bash,输入以下命令,生成SSH-Key:github

ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/id_rsa复制代码

默认生成SSH-Key在C:\Users\你的电脑name\.ssh路径下;固然,你也能够在“-f”后面指定你本身想要生成的路径,不过通常没有必要。以本人电脑为例,即为C:\Users\OneDay\.sshshell

其中“id_rsa”能够更改为你本身喜欢的名称,用以区分不一样的SSH-Key;默认名称为“id_rsa”。windows

输入此命令,点击三下“回车键”后,即会在~/.ssh/目录下,生成id-rsa和id-rsa.pub;其中id-rsa为私钥,id-rsa.pub为公钥。咱们将id-rsa.pub中的内容粘贴到git服务器的SSH-Key的配置中。bash

注意:即便是同一个email地址,在不一样的电脑上,都须要从新生成SSH-Key;而后再添加到git服务器的SSH-Key配置中。服务器

我曾想固然地觉得,同一个email地址生成的公钥和私钥,能够拿到任意电脑上随意使用......[手动捂脸]其实,并不容许这种操做。我仍是太天真啦.....ssh

2. 添加私钥

ssh-add ~/.ssh/id_rsa $ ssh-add ~/.ssh/github_rsa复制代码

使用该命令,能够同时添加多个私钥,命令之间,需用“$”隔开;若是执行ssh-add时提示"Could not open a connection to your authentication agent",能够执行以下命令: ide

ssh-agent bash复制代码

而后再运行上面的命令便可。你还能够执行以下操做:gitlab

# 能够经过 ssh-add -l 来确私钥列表
ssh-add -l
# 能够经过 ssh-add -D 来清空私钥列表
ssh-add -D复制代码

3. 建立并修改配置文件

在 ~/.ssh 目录下经过以下命令,新建一个config文件:测试

touch config复制代码

打开并编辑“config”文件,添加以下内容:

# gitlab
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_rsa复制代码

4. 测试

执行以下命令,查看咱们配置是否成功:

ssh -T git@github.com复制代码

若是成功输出欢迎语句,则表示配置成功。例如:

Hi hdszylcd19! You've successfully authenticated, but GitHub does not provide shell access.复制代码

这里是以github为例。固然,你也须要试一试连接公司的gitlab,这里就再也不展开啦。

若是遇到错误的话,则可使用以下命令,查看详细信息,定位具体缘由:

ssh -vT git@github.com复制代码
相关文章
相关标签/搜索