git_github_ssh_linux.jpg
正文
# 公鑰放在`~/.ssh/`目錄遍尺,email@email.com可以改成其他郵箱好做區(qū)別质蕉,id_rsa可以改成github_id_rsa挠轴,表示用于github
ssh-keygen -t rsa -C "email@email.com" -f ~/.ssh/id_rsa
在~/.ssh/
下創(chuàng)建config传睹,執(zhí)行命令vim ~/.ssh/config
,如果已經(jīng)創(chuàng)建了就編輯,博主的config
如下(host隨意即可岸晦,方便自己記憶欧啤,后續(xù)在添加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
# 查看系統(tǒng)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)
# 如果出現(xiàn)The agent has no identities. 則表示沒有代理
ssh-add -D
# 依次將不同的ssh添加代理(如果使用 ssh-add ~/.ssh/id_rsa的時候報Could not open a connection to your authentication agent錯誤
,則需要先運(yùn)行一下 ssh-agent bash 命令后再執(zhí)行 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公鑰已經(jīng)獲得了權(quán)限
Hi USERNAME! You've successfully authenticated, but github does not provide shell access.
配置完成后邢隧,在連接非默認(rèn)帳號的github倉庫時,遠(yuǎn)程庫的地址要對應(yīng)地做一些修改冈在,比如現(xiàn)在添加user帳號下的一個倉庫test倒慧,則需要這樣添加:(user是github的用戶名, github是上面配置的host)
git remote add test git@github:user/test.git
PS:這里需要注意一點(diǎn),就是在配置好這些以后,如果修改了全局的git config
里的user.name
與user.email
,在你提交代碼時, 可能會出現(xiàn)看不到貢獻(xiàn)圖的顯示,這可能是上面兩個屬性不正確所至.