当我们拥有多个github账号、项目,如果同时使用同一个ssh公钥,就会报错。
很遗憾,rsa算法一个私钥对应一个公钥,不能像比特币一样从私钥创建一个新的公钥。
有很多方法解决此问题,例如在git时加参数导入不同私钥,但是都不够优雅。
经过研究发现,最优雅的办法就是在~/.ssh/
内添加一个新的公私钥对:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_2
然后加入一个~/.ssh/config
文件,内容为:
Host username.github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa_2
其中username
填什么好像没啥区别,用自己的项目所在用户名保险一些。
记得将config
文件的权限改为600:
chmod 600 ~/.ssh/config
以后git操作时,就利用username.github.com
代替github.com
,例如:
git clone [email protected]:username/projectname.git
就可以完美解决所有问题。
如果有更多账户,则针对不同的账户,添加新的公私钥对,并以不同的username
添加进~/.ssh/config
文件。