如果有多个github.com的账号,那么同一台电脑,如何配置SSH的Key?

ssh-keygen产生的Key默认都在用户名下的” .ssh “文件夹中,默认名字是id_rsa.pub与id_rsa。我们克隆的时候,也都是直接用git clone [email protected]:ensky/ensky.git,但是如果有两个账户,想用在一台电脑上,如何配置?

由于设置多个账户了,那么首先清楚一下全局配置,重新设置一个。

清除操作:

git config –global –unset user.name

git config –global –unset user.email

验证是否清除成功:

git config –global user.name
git config –global user.email

然后产生一组新的密钥,给新的GitHub使用:

ssh-keygen -t rsa -C “[email protected]”,注意产生的时候,提示输入名字的时候,要输入一个名字。

Enter file in which to save the key (/Users/ensky/.ssh/id_rsa): newkey

就是上面这行,输入新名字,这样产生的key就会以这个名字命名。

创建一个config文件

在.ssh文件下,创建一个名字为“config“的文件,没有后缀名。配置文件的格式:

Host firstgit
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

Host secondgit
HostName github.com
User git
IdentityFile ~/.ssh/newkey

验证是否可以链接成功的指令:ssh -T git@firstgit

解释:
Host //网站别名
HostName //托管网站域名
User //托管网站上的用户名
IdentityFile ~/.ssh/ //使用的密钥文件

经过上述配置以后,原来克隆的地址是:[email protected]:ensky/ensky.git

我们需要改为:git@firstgit:ensky/ensky.git

也就是我们使用Host后的名字替换掉github.com,这样就可以正常使用各个地址的Key了。

克隆:git clone git@firstgit:ensky/ensky.git

原理分析
1.ssh 客户端是通过类似 [email protected]:githubUserName/repName.git ** 的地址来识别使用本地的哪个私钥的,地址中的 User 是@前面的git, Host 是@后面的github.com。
2.如果所有账号的 User 和 Host 都为 git 和 github.com,那么就只能使用一个私钥。所以要对User 和 Host 进行配置,让每个账号使用自己的 Host,每个 Host 的域名做 CNAME 解析到 github.com,如上面配置中的Host second.github.com。
3.配置了别名之后,新的地址就是[email protected]:githubUserName/repName.git**(在添加远程仓库时使用)。
这样 ssh 在连接时就可以区别不同的账号了。引用自:https://blog.csdn.net/chaihuasong/article/details/37886139

关键词:多个ssh key,配置多个key,一台电脑配置多个ssh key