因為想把公司和個人賬號分開否淤,在Github上建了兩個賬號今阳,結(jié)果發(fā)現(xiàn)在一臺機器上要同時使用兩個賬號還需要一些額外配置宁改,這里記錄下具體配置步驟。
首先兩個賬號的ssh key登陸要配置好缅疟,這里就不記錄,具體可以參考官方文檔或者這個issue文章里最前面的介紹配置多個git賬號遍愿。
配置多個git賬號這里面提供的多賬號登陸的配置其實基本上全了存淫,但我配完后遇到的一個問題是賬號并沒有根據(jù)指定域名來切換認證的key信息,導(dǎo)致賬號權(quán)限錯誤沼填。搜索一番后才發(fā)現(xiàn)少了IdentitiesOnly yes
這個配置桅咆。最終使用的完整~/.ssh/config
配置文件內(nèi)容示例如下:
Host s.github.com
hostname github.com
User user1
IdentityFile ~/.ssh/id_ed25519user1
IdentitiesOnly yes
Host github.com
hostname github.com
User user2
IdentityFile ~/.ssh/id_ed25519user2
IdentitiesOnly yes
根據(jù)StackOverflow上一個問題的解答了解到IdentityFile實際上只是將用戶指定的key文件添加到SSH agent里(默認的key比如版本1使用的~/.ssh/identity和版本2使用的 ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_rsa)。而IdentitiesOnly yes
阻止使用默認的id坞笙,否則如果有id文件匹配默認的名字岩饼,他們將會在ssh認證過程中先被嘗試使用。
配置好后可以通過ssh -T git@s.github.com
來驗證輸出的賬戶信息是否和User中指定的用戶名一致薛夜。
另外由于user1使用的Host變成了s.github.com
,需要修改該用戶項目的remote配置:
$git remote rm origin
$git remote add origin git@s.github.com:user1/demo.git