问题描述
在学习Git的过程中,我创建了两个GitHub账号,一个用于学习,一个用于工作,并使用同一台电脑进行远程Git仓库的维护。由于Git的远程连接是基于SSH的,不可避免的要管理多套SSH公钥/私钥。否则当你向多个Github账号的仓库中push时,会遇到如下错误
veatheroe:micky aoyi$ git push -u origin master
Enter passphrase for key '/Users/aoyi/.ssh/id_rsa':
[email protected]: Permission denied (publickey).
fatal: 无法读取远程仓库。
遇到该错误的原因则是git默认使用的/Users/aoyi/.ssh/id_rsa公钥与你远程的Github账号中记录的SSH公钥不匹配。
解决途径
解决途径参考了popfisher博主的博客。简单说就是自定义一个config文件管理SSH key。在你的.ssh文件夹下(我的是/Users/aoyi/.ssh)创建config文件,并作如下修改
# 配置github.com [email protected]账号的SSH公私钥,别名是id_rsa_veatheroe.pub 配置github.com [email protected]账号的SSH公私钥,别名是id_rsa_veatheroe.pub
Host github.com
HostName github.com
IdentityFile /Users/aoyi/.ssh/id_rsa_veatheroe
PreferredAuthentications publickey
User username1
当切换到另外一个github账号时,更改该config文件即可。