@什么是SSH秘钥配对
- Git的本地仓库与远程仓库交互的方式主要有四种:关联、克隆、拉取、推送;
- 本地无论关联还是克隆远程仓库,都必须要先获得远程仓库的地址;
- 远程仓库的地址有两种格式可供选择,一种是ssh协议格式,一种是http协议格式;
- 以http格式进行关联或克隆的本地仓库,每次向远程推送时,都需要输入远程仓库管理员的邮箱和密码;
- 以ssh格式进行关联或克隆的本地仓库,如果想要和远程仓库进行推拉操作,则需要先完成SSH秘钥的配对;
- SSH秘钥对(一把公钥+一把私钥)的作用是用作本地仓库和远程仓库通信的信物;
- 远程仓库持有开发者的公钥,本地仓库持有开发者的私钥,当公钥和私钥能够配对时,该开发者的本地仓库就可以和远程仓库进行推拉操作了;
- 默认的秘钥对生成算法是RSA非对称加密算法,其原理这里暂时不做详细讨论;
@秘钥配对的流程:
1、本地生成秘钥对:
ssh-keygen -t rsa -C "284577461@qq.com"
在生成的过程中,Git会要求你输入私钥名称、密码,这里随意指定一个即可
在当前目录下生成了一对秘钥,sirouyang为私钥,sirouyang.pub为公钥
2、公钥交由远程仓库持有:
复制公钥内容
远程仓库账号添加公钥:进入账号主页,最右上角加号点开选择【Settings】,在新打开的页面中选择【SSH and GPG keys】,右侧点击【New SSH key】,在接下来的页面中输入一个随意的名称并将公钥内容粘贴进去,点击【Add SSH key】,回到【SSH and GPG keys】栏目下即可返现新增了一枚公钥,颜色为黑色,代表私钥持有者还没有匹配过该公钥;
3、本地绑定私钥,并进行配对测试:
# 启动ssh-agent
ssh-agent bash
# 绑定私钥
ssh-add sirouyang
# 秘钥配对测试
ssh -T git@github.com
最终,秘钥配对成功,远程账号中的对应公钥变为了绿色
现在,本地仓库就可以通过ssh地址和远程仓库进行推送和拉取操作了!