admin 管理员组

文章数量: 887016

1.背景

想要在一台主机中配置多个仓库连接时,需要不同的 ssh 密钥来管理,比如:

  • Github 仓库:用于自己个人的开发管理

  • Gitlab 仓库:用于公司内部开发管理

各个仓库上传互不影响,该如何处理?

2.前提

本地环境下已安装部署完 Git 以及Node,此处不再多赘述。

Git官网: https://git-scm/
Node官网: https://nodejs/zh-cn

3.生成密钥

在本地 ”C:\Users\用户名\ .ssh\“ 中,通过 “Open git bash here" 打开 git 命令窗口,输入命令:

ssh-keygen -t rsa -C "xxx邮箱@xxx邮箱地址" -f "id_rsa_github"
ssh-keygen -t rsa -C "xxx邮箱@xxx邮箱地址" -f "id_rsa_gitee"

生成密钥的邮箱地址必须为对应仓库的注册邮箱!!!

密钥名称可以根据自己喜好更改,如:a_rsa、b_rsa

运行命令(以 gitee 为例):

1处是设置密钥密码,可根据自己需求进行配置,这里不设置

2处确认密码,不输入直接回车

密钥存储位置也可以自定义,自定义输入命令:

ssh-keygen -t rsa -C "xxx邮箱@xxx邮箱地址"

但是自定义需要提前创建好空的文件,否则默认保存在在 ”C:\Users\用户名\ .ssh\“ 中,例如保存在 ”D:\ .ssh\“ 中,则需要创建好 ”.ssh“ 文件夹,在其中新建文件 ”a_rsa"(自己需要的密钥名称),新建好后,在1出需要输入路劲格式为:”/d/.ssh/a_rsa“。

2处 ”是否覆盖“ ,选择 “是”,输入 ”y"

3处是设置密钥密码,可根据自己需求进行配置,这里不设置

4处确认密码,不输入直接回车

4.git 全局设置用户名及邮箱

// 输入仓库用户名
git config --global user.name "用户名" 
// 输入仓库邮箱
git config --global user.email "邮箱"

查看已经设置的 git 全局信息:

git config -l

5.关键——在~/.ssh/ 目录下新建或者修改config文件

内容输入:

# 配置gitee
Host gitee                 
    HostName gitee    
    IdentityFile C:\\Users\\用户名\\.ssh\\a_rsa
    PreferredAuthentications publickey
    User username1
​
# 配置github
Host github
    HostName github  
    IdentityFile C:\\Users\\用户名\\.ssh\\b_rsa
    PreferredAuthentications publickey
    User username2

注:

  • HostName 是主机名

  • IdentityFile 是密钥文件

  • PreferredAuthentications publickey 优先使用 ssh

  • User 用户名(可忽略)

可以根据自己密钥的适量进行增加或者删除

6.部署 SSH key

拷贝 ~/.ssh/a_rsa.pub 和 ~/.ssh/b_rsa.pub 文件里面的内容, 然后打开对应的托管平台设置ssh-keys密钥的页面,把复制的内容粘贴进来就好了。

这里以 gitee为例:

标题可随意输入

~/.ssh/a_rsa.pub 内容粘贴在 “公钥” 栏中

点击 “确定” 创建完成

7.测试 SSH 链接

测试 config 文件设置的 git 账号是否与托管平台的密钥部署设置成功

ssh -T git@gitee
ssh -T git@github

若出现下面语句,表明链接成功

# xxx! You’ve successfully authenticated, but GitHub does not provide bash access.

本文标签: 多个 密钥 脑中 台电 Win