Git多用户配置ssh

git_github_ssh_linux.jpg

正文

# 公钥放在`~/.ssh/`目录,email@email.com可以改成其他邮箱好做区别,id_rsa可以改成github_id_rsa,表示用于github
ssh-keygen -t rsa -C "email@email.com" -f ~/.ssh/id_rsa

~/.ssh/下创建config,执行命令vim ~/.ssh/config,如果已经创建了就编辑,博主的config如下(host随意即可,方便自己记忆,后续在添加remote是还需要用到)

#github qq168520@163.com
host github
    hostname github.com
    User Agoni
    IdentityFile ~/.ssh/github_id_rsa

#gitlab xiezhuocheng@mjwon.com
host gitlab
    hostname http://10.10.10.79
    User Agoni
    Port 11000
    IdentityFile ~/.ssh/id_rsa

#gitlab qq168520@163.com
host oschina
    hostname git.oschina.net
    User Agoni
    IdentityFile ~/.ssh/oschina_id_rsa
# 查看系统ssh-key代理
ssh-add -l

显示
2048 SHA256:9Qq7xLqqtlDOehS7Aw5mlRdVAq8XrUlm6tKeXzMnD4 /Users/xxx/.ssh/id_rsa (RSA)
2048 SHA256:KmwrjIrdqQWdBF3f9FIhbIlvdjo6+tbSJXms1TWuB4 /Users/xxx/.ssh/oschina_id_rsa (RSA)
2048 SHA256:YDzombL5ndt0bAVulwvANumbEX9TFQ/iDO51AzN5F0 /Users/xxx/.ssh/github_id_rsa (RSA)

# 如果出现The agent has no identities. 则表示没有代理
ssh-add -D

# 依次将不同的ssh添加代理(如果使用 ssh-add ~/.ssh/id_rsa的时候报Could not open a connection to your authentication agent错误
,则需要先运行一下 ssh-agent bash 命令后再执行 ssh-add ...等命令)
ssh-add -K ~/.ssh/id_rsa
ssh-add -K ~/.ssh/github_id_rsa
ssh-add -K ~/.ssh/oschina_id_rsa

测试ssh:ssh -T git@github.com
你会得到如下提示,表示这个ssh公钥已经获得了权限

Hi USERNAME! You've successfully authenticated, but github does not provide shell access.

配置完成后,在连接非默认帐号的github仓库时,远程库的地址要对应地做一些修改,比如现在添加user帐号下的一个仓库test,则需要这样添加:(user是github的用户名, github是上面配置的host)
git remote add test git@github:user/test.git

PS:这里需要注意一点,就是在配置好这些以后,如果修改了全局的git config里的user.nameuser.email,在你提交代码时, 可能会出现看不到贡献图的显示,这可能是上面两个属性不正确所至.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容