Loading

git配置多个ssh key

随着工作的深入,我们通常都会有多个git账户。比如公司gitlab一个账户,github或gitee有一个账户。而平时我们又回通过 配置ssh公私钥认证的方式省去繁琐的登录远程仓库的操作,不同的git账户一般都是不同的邮箱,而ssh又通过邮箱生成,那么就会涉及一个配置多对ssh key的问题


为Git配置SSH Key步骤


生成SSH Key

打开git bash终端,执行以下命令

ssh-keygen -t rsa -C "你的邮箱" 

然后一直回车,程序将会在的~/.ssh/路径下生成一对公私钥。至于为了区分不同的公私钥,生成后再改名字即可

查看公钥内容

以下命令可以查看公钥内容,然后复制

cat ~/.ssh/id_rsa.pub
远程仓库配置公钥

下面的已github为例,gitlab和gitee过程都基本一样,大致过程就是:

点击个人头像 -> settings -> SSH And GPG Key -> 点击 新增SSH Key按钮 -> 复制公钥

如图所示:

image


配置多个SSH Key


通过以上配置SSH key 的步骤,我们可以为多个远程仓库配置配置SSH公钥,本地~/.ssh/目录如下所示

image

ssh-agent

打开ssh-agent

ssh-agent -s  & ssh-agent bash

ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程

这里如果你用的github官方的bash,用: ssh-agent -s
如果是其他的,比如msysgit,用:eval $(ssh-agent -s)
不然在添加私钥的时候可能会报下面错误 Could not open a connection to your authentication agent.

添加私钥

通过以下命令将所有私钥进行添加

ssh-add ~/.ssh/私钥
配置config文件

在存放公私钥的同级目录下创建一个名为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 -v  git@[config配置的host值]

出现以下提示则证明已经成功,可以不用登录像各个远程仓库提交代码

image

posted @ 2021-07-16 21:55  Acelin_H  阅读(1288)  评论(2编辑  收藏  举报