在实际项目开发过程当中,咱们除了有公司gitlab的SSH-key须要配置外,可能还有一些本身的项目放在github之上。在这样的使用情形下就须要配置不一样的SSH-Key来对应不一样的项目环境。git
以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\.ssh
。shell
其中“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
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复制代码
在 ~/.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复制代码
执行以下命令,查看咱们配置是否成功:
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复制代码