创建多个SSHkey

144 阅读2分钟

一、背景介绍

sshkey是方便和各种git仓库做权限验证使用的,省去每次拉取和提交代码需要输入用户名密码的步骤。但是有时候我们可能需要用不同的账号提交到不同的仓库,这时候就需要创建多个sshkey添加到不同的git仓库中。

二、创建sshkey

无论有没有创建过都可以使用下边命令进行创建

ssh-keygen -t rsa -C "<您的 Github 邮箱>"

1.之前没有创建过

如果没有创建过会提示输入密码(直接两次回车)

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

直接回车默认没有密码,因为我们本来就是为了省去输入密码的繁琐步骤

2.之前创建过

会提示输入文件名

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/[user]/.ssh/id_rsa):

任意输入一个自己可以区分的名称就行比如 id_rsa_github,但是需要带上所有路径

/c/Users/[user]/.ssh/id_rsa_github

或者在创建的时候直接指定文件名

$ ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/id_rsa_github

然后还是两次回车不设置密码

三、查看sshkey

一般情况下本地创建的sshkey 在C/用户/[username]/.ssh 文件夹下,也可以通过gitbash窗口执行命令

cd ~/.ssh
ls 

查看公共秘钥


$ cat id_rsa_github.pub

将放回的 ssh-rsa 开头的字符串或者文件夹下.pub结尾的文件中的字符串,直接复制到git仓库中的设置sshkey的公钥中就行

四、创建config

如果是单个账户的话,现在就可以直接使用了,如果是多个账户就需要单独在配置不同git仓库使用的sshkey验证,不然本地默认会用id_rsa.pub的公钥进行验证,执行命令或者直接新建一个名称为config的文件

$ cd ~/.ssh
$ touch config

然后打开文件输入如下配置内容

 
# 1.个人git

  Host github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  PreferredAuthentications publickey

# 2.公司git
  Host gitlab.com
  HostName gitlab.com
  IdentityFile ~/.ssh/id_rsa_gitlab
  PreferredAuthentications publickey


# 3.gitee 
# 注意:多个Host公用一个公钥时,
# 对应的HostName和Port必须跟在Host后面

  Host gitee.com
  HostName gitee.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_github

保存后就可以直接拉取或者提交对应仓库的代码了~