我们可能会需要在一台电脑上以不同的github账户去使用git,这时就需要去解决如何管理本机上的多个ssh key的问题了。
生成新ssh key
如果我们电脑上已经存在了一个ssh key,那么我们需要在我们电脑上生成第二个你想在本电脑上使用的id_rsa,使用命令:ssh-keygen -t rsa -C “你的github注册邮箱”。
下图红色标注部分会提示你把新生成的id_rsa存放到哪里,此处默认会存放在c盘的用户名下的.ssh文件夹下(即你第一个github用户ssh key存放的目录),因此我们需要输入路径/c/Users/DodoMonster/.ssh(注意此路径是你的系统盘下用户目录安放ssh密钥的目录,请使用自己电脑上相对应的目录),最后我以“id_rsa_me”重新命名了ssh key防止默认与已有的ssh key重复。
在输入了路径后,会提示你输入提交项目时输入的验证密码,不输则表示不用密码,这是为了防止别人随便在你的项目上push东西,所以最好还是输入以下你的密码。回车,再重复输入确认回车即可。
添加新ssh key
默认SSH只会读取id_rsa,所以为了让SSH识别新的私钥,需要将其添加到SSH agent
使用命令:ssh-add ~/.ssh/id_rsa_me
如果报错:Could not open a connection to your authentication agent.无法连接到ssh agent
可执行ssh-agent bash命令后再执行ssh-add命
然后将公钥添加到git账号中 https://github.com/settings/keys
配置config文件
查看.ssh文件中是否存在config文件
如果已存在则直接编辑config文件,命令:vim config #这是linux的命令,进入了vim界面后按a或i或A或I进入编辑模式,编辑完成后按esc键输入:wq 保存文件退出
如果不存在则需要创建config文件,命令:touch config,再对config文件进行编辑
对config文件进行配置填写:
#Default 第一个账号(123456@xxxx.com)
Host default
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_me
#second 第二个账号(38894403@xxxx.com)
Host zc
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
其中Host 后的名字可以随意方便自己记忆,但HostName必须为github.com(或者其它git地址)。
测试是否配置成功
使用命令:
ssh -T git@zc
出现如图的欢迎语则为配置成功。
注意:配置完成后,在连接Host不是github.com的github仓库时,远程库的地址要对应地做一些修改:
而并非原来的git@github.com:38894403/react.git
这样每次连接都会使用id_rsa_me与服务器进行连接。
配置至此,大功告成!