正文
# 公钥放在`~/.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.name
与user.email
,在你提交代码时, 可能会出现看不到贡献图的显示,这可能是上面两个属性不正确所至.