GitHub Error: Key already in use

当我们拥有多个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文件。

参考文献:https://blog.antoine-augusti.fr/2016/04/multiple-deploy-keys-on-the-same-machine-github-key-already-in-use/

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注