你的浏览器不支持canvas

我们的征程是星辰大海

git 配置多个SSH-Key

Date: Author: yangdy

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。

作为一名键盘侠(程序员),git 是我最常用的SCM工具,日常工作和生活中会涉及gitlab、github以及阿里云RDC的仓库。登录涉及多个ssh key那怎么办呢?

Quick Start

创建ssh秘钥对

$ ssh-keygen -t rsa -C "youremail@yourcompany.com” -f ~/.ssh/gitlab_rsa

在~/.ssh/目录会生成gitlab_rsa(私钥)和gitlab_rsa.pub(公钥)。 我们将gitlab_rsa.pub中的内容粘帖到公司gitlab服务器的SSH-key的配置中。

注册私钥

$ ssh-add ~/.ssh/gitlab_rsa

如果执行ssh-add时提示”Could not open a connection to your authentication agent”,可以先执行命令:

$ ssh-agent bash

然后再运行ssh-add命令。 同样方法创建第二个key,eg github_rsa

# 可以通过 ssh-add -l 来确私钥列表
$ ssh-add -l
# 可以通过 ssh-add -D 来清空私钥列表
$ ssh-add -D

添加配置文件

touch config

添加如下内容

# gitlab
Host gitlab.com
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitlab_rsa
# github
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_rsa

设置账号名

Setting your Git username for all repositories

$ git config --global user.name "Mona Lisa"
$ git config --global user.name
> Mona Lisa
$ git config user.email "邮箱"

Setting your Git username for a single repository

$ git config user.name "Mona Lisa"
$ git config user.name
> Mona Lisa
$ git config user.email "邮箱"

测试

ssh -T git@github.com

# for debug
ssh -vT git@github.com

<EOF>


对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。