随着工做的深刻,咱们一般都会有多个git帐户。好比公司gitlab一个帐户,github或gitee有一个帐户。而平时咱们又回经过 配置ssh公私钥认证的方式省去繁琐的登陆远程仓库的操做,不一样的git帐户通常都是不一样的邮箱,而ssh又经过邮箱生成,那么就会涉及一个配置多对ssh key的问题git
打开git bash终端,执行如下命令github
ssh-keygen -t rsa -C "你的邮箱"
而后一直回车,程序将会在的~/.ssh/路径下生成一对公私钥。至于为了区分不一样的公私钥,生成后再更名字便可bash
如下命令能够查看公钥内容,而后复制ssh
cat ~/.ssh/id_rsa.pub
下面的已github为例,gitlab和gitee过程都基本同样,大体过程就是:gitlab
点击我的头像 -> settings -> SSH And GPG Key -> 点击 新增SSH Key按钮 -> 复制公钥
code
如图所示:blog
经过以上配置SSH key 的步骤,咱们能够为多个远程仓库配置配置SSH公钥,本地~/.ssh/目录以下所示域名
打开ssh-agentit
ssh-agent -s
ssh-agent就是一个密钥管理器,运行ssh-agent之后,使用ssh-add将私钥交给ssh-agent保管,其余程序须要身份验证的时候能够将验证申请交给ssh-agent来完成整个认证过程io
这里若是你用的github官方的bash,用:
ssh-agent -s
若是是其余的,好比msysgit,用:eval $(ssh-agent -s)
否则在添加私钥的时候可能会报下面错误Could not open a connection to your authentication agent.
经过如下命令将全部私钥进行添加
ssh-add ~/.ssh/私钥
在存放公私钥的同级目录下建立一个名为config的文件,打开进行配置,以下所示:
# gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_rsa User Acelin_H # sitech Host git.si-tech.com.cn HostName git.si-tech.com.cn PreferredAuthentications publickey IdentityFile ~/.ssh/sitech_rsa User Acelin_H # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_rsa User Acelin_H
Host: 取任意名字
HostName: 这个是真实的域名地址
IdentityFile:这里是id_rsa的地址
PreferredAuthentications:配置登陆时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等
User:配置使用用户名
执行如下命令进行验证
ssh -T 'config配置的host值'
出现如下提示则证实已经成功,能够不用登陆像各个远程仓库提交代码