git配置多个账号,是一个常见的需求。比如,我们既要支持gitHub,又要支持公司内网的Git服务器。
配置多个账号
解决这个问题,最关键的就是在.ssh
目录下,创建一个config
文件。然后在这个文件中,说明那个域名下该采用那种域名。具体配置方式如下:
创建公私钥对的时候,我们会把私钥起名为id_rsa
,公钥起名为id_rsa.pub
。但是,因为这是默认情况的配置,如果你使用了config文件,就没必要这么做。可以将私钥起名为诸如id_rsa_github
等等,公钥类似。
之所以这么做可以,是因为我们我们在配置项中,已经说明了在什么域名下,要使用那个私钥文件。
# 配置github.com
Host github.com
HostName github.com
IdentityFile /Users/xxxx/.ssh/id_rsa_gitHub
PreferredAuthentications publickey
User xxxxxxx@qq.com
# 配置git.xxxx.tech
Host git.xxxx.tech
HostName git.xxx.tech
IdentityFile /Users/xxx/.ssh/id_rsa_ascs
PreferredAuthentications publickey
User xxxxx@xxxx.tech
可能会遇到的问题
这么做在我们使用Git的时候,可能会提示我们输入账号密码。这很麻烦,但是也有办法解决:
使用ssh-add 添加对应的私钥。
ssh-add ~/.ssh/id_rsa
知识补充:
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。
ssh-agent 用于管理 ssh private keys,目的是对解密的私钥进行高速缓存。
ssh-add 提示并将用户使用的私钥添加到 ssh-agent 维护列表中,此后当公钥连接到远程 SSH 或 SCP 主机时,不再提示信息。
参考链接:
ssh-add