git本地管理多个账户
我们可能会需要在一台电脑上以不同的github账户去使用git,这时就需要去解决如何管理本机上的多个ssh key的问题。
1、进入到~/.ssh
打开你的git bash , 输入命令:
1 | cd ~/.ssh |
2、将C:\Users\wang1\.ssh
目录下的id_rsa和id_rsa.pub重新命名(如果有的话),防止被覆盖。比如,我命名为wxler_id_rsa和wxler_id_rsa.pub。
3、生成 新的 ssh密钥
生成第二个ssh key
1 | ssh-keygen -t rsa -C "你的github注册邮箱地址" |
- Enter file in which to save the key (/c/Users/wang1/.ssh/id_rsa):提示你把新生成的id_rsa存放到哪里,此处默认会存放在C盘的用户名下的.ssh文件夹下(即你第一个github用户ssh key存放的目录)。这里我只填写了公钥和秘钥文件的名称,所以会在c/Users/wang1/.ssh/目录下生成两个文件:mylayne_id_rsa(秘钥文件)和mylayne_id_rsa.pub(公钥文件)。
- Enter passphrase (empty for no passphrase): 提示你输入提交项目时输入的验证密码,这是为了防止别人随便在你的项目上push东西。如果你不想每次操作都输入密码,可以不填。
4、添加新 ssh Key
默认SSH只会读取id_rsa,所以为了让SSH识别新的私钥,需要将其添加到SSH agent。
1 | ssh-add ~/.ssh/mylayne_id_rsa |
如果报错:Could not open a connection to your authentication agent,即无法连接到ssh agent
可执行ssh-agent bash
命令后再执行ssh-add
命。
5、配置config文件
查看.ssh文件夹中是否存在config文件,如果已存在则直接编辑config文件,命令:vim config
。
如果不存在则需要创建config文件,命令:touch config
,再对config文件进行编辑。
对config文件进行配置填写:
1 | Host github.com #把默认的常用的github Host设为github.com较好 |
config文件主要是为了提交远程仓库的时候,ssh 做区分用的。
主要区分是通过host区分的,所以在以后的push和pull过程中,如果用的第一个,都是正常pull和push,但是对于第二个,要改成自己设置的别名mylayne。
5、测试是否配置成功
1 | ssh -T git@github.com |
出现如图的欢迎语则为配置成功。但是,执行ssh -T git@mylayne
出现 permission denied 的错误。
问题解决: 登录mylayne的github账户, 将ssh文件夹中的公钥( mylayne_id_rsa.pub)添加到GitHub管理平台中,在GitHub的个人账户的设置中找到如下界面,title随便起一个,将公钥( id_rsa.pub)文件中内容复制粘贴到key中,然后点击Add SSH key:
这样就成功了,如下图:
6、配置完成后,在连接Host不是github.com的github仓库时,远程库的地址要对应地做一些修改,比如现在添加mylayne帐号下的一个仓库testABC,则需要使用如下命令这样添加:
1 | git clone git@mylayne:mylayne/testABC.git |
而并非原来的git@github.com:wxler/testABC.git
。
执行完上述命令后,再执行git push
或git pull
等操作就是在mylayne用户下操作,是不是很方便。
【参考文档】