@什么是SSH秘钥配对

  • Git的本地仓库与远程仓库交互的方式主要有四种:关联、克隆、拉取、推送;
  • 本地无论关联还是克隆远程仓库,都必须要先获得远程仓库的地址;
  • 远程仓库的地址有两种格式可供选择,一种是ssh协议格式,一种是http协议格式;
  • 以http格式进行关联或克隆的本地仓库,每次向远程推送时,都需要输入远程仓库管理员的邮箱和密码;
  • 以ssh格式进行关联或克隆的本地仓库,如果想要和远程仓库进行推拉操作,则需要先完成SSH秘钥的配对;
  • SSH秘钥对(一把公钥+一把私钥)的作用是用作本地仓库和远程仓库通信的信物;
  • 远程仓库持有开发者的公钥,本地仓库持有开发者的私钥,当公钥和私钥能够配对时,该开发者的本地仓库就可以和远程仓库进行推拉操作了;
  • 默认的秘钥对生成算法是RSA非对称加密算法,其原理这里暂时不做详细讨论;

@秘钥配对的流程:

1、本地生成秘钥对:

ssh-keygen -t rsa -C "284577461@qq.com"

在生成的过程中,Git会要求你输入私钥名称、密码,这里随意指定一个即可

properties 配置 key 密钥太长 密钥配对_远程仓库


在当前目录下生成了一对秘钥,sirouyang为私钥,sirouyang.pub为公钥

properties 配置 key 密钥太长 密钥配对_开发者_02

2、公钥交由远程仓库持有:

复制公钥内容

properties 配置 key 密钥太长 密钥配对_远程仓库_03


远程仓库账号添加公钥:进入账号主页,最右上角加号点开选择【Settings】,在新打开的页面中选择【SSH and GPG keys】,右侧点击【New SSH key】,在接下来的页面中输入一个随意的名称并将公钥内容粘贴进去,点击【Add SSH key】,回到【SSH and GPG keys】栏目下即可返现新增了一枚公钥,颜色为黑色,代表私钥持有者还没有匹配过该公钥;

properties 配置 key 密钥太长 密钥配对_推送_04

3、本地绑定私钥,并进行配对测试:

# 启动ssh-agent
ssh-agent bash

# 绑定私钥
ssh-add sirouyang

# 秘钥配对测试
ssh -T git@github.com

properties 配置 key 密钥太长 密钥配对_远程仓库_05

最终,秘钥配对成功,远程账号中的对应公钥变为了绿色

properties 配置 key 密钥太长 密钥配对_开发者_06

现在,本地仓库就可以通过ssh地址和远程仓库进行推送和拉取操作了!