Git多帐号配置

在使用git,gitlab的时候,会在.ssh目录下生成对应rsa文件,那如果是有多个配置,该怎么处理?

如何生成ssh密钥,可以参考 generating-ssh-keys

##1. 多帐号配置
需要在.ssh目录下,增加config配置,config可以配置多个git的帐号

1
2
3
4
5
#Host myhost(这里是自定义的host简称,以后连接远程服务器就可以用命令ssh myhost)[注意下面有缩进]
#User 登录用户名(如:git)
#HostName 主机名可用ip也可以是域名(如:github.com或者bitbucket.org)
#Port 服务器open-ssh端口(默认:22,默认时一般不写此行
#IdentityFile 证书文件路径(如~/.ssh/id_rsa_*)

具体的实例配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#github yeungeek@gmail.com
host github
hostname github.com
User yeungeek
IdentityFile /home/yeungeek/.ssh/github_id_rsa
#gitlab yeungeek@gmail.com
host gitlab
hostname gitlab.widget-inc.com
User yeungeek
Port 65422
IdentityFile /home/yeungeek/.ssh/id_rsa
host oschina
hostname git.oschina.net
User yeungeek
IdentityFile /home/yeungeek/.ssh/oschina_id_rsa

注意点:

  • 在配置文件中的,IdentityFile文件位置是rsa密钥,不是pub文件
  • 提交代码的时候,需要修改git config
    可以之设置一个全局的user.email和user.name,然后需要不同的配置的仓库,单独设置
    1
    2
    3
    4
    5
    6
    7
    //设置global
    git config --global user.name "yeungeek"
    git config --global user.email "yeungeek@gmail.com"
    //设置仓库的user.email和user.name
    git config user.email "yeungeek@gmail.com"
    git config user.name "yeungeek"
    这样配置就ok了

##2. ssh-add说明
上面的配置完成完成,使用命令ssh-add -l可以看到所有的密钥列表

1
2
3
4
yeungeek@yeungeek:~/.ssh$ ssh-add -l
2048 db:6a:da:46:6e:03:da:94:f0:2c:43:1d:91:8a:bd:67 yeungeek@gmail.com (RSA)
2048 07:59:9f:93:d2:e3:80:e1:df:77:ed:c9:5d:2e:3d:04 yeungeek@gmail.com (RSA)
2048 4f:ba:6c:00:12:41:0e:a8:50:be:f5:6e:2e:7a:10:91 yeungeek@gmail.com (RSA)

ssh-add的作用主要将密钥添加到 ssh-agent 的高速缓存中,这样在当前会话中就不需要再次输入密码了
具体的可以参考 SSH Keys

yeungeek wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
曾经有一份打赏放在我面前,我没有珍惜.如果上天给我再来一次的机会,我会说三个字:赏死我.