20210111单独聊聊ssh,密钥,github与ssh,git与ssh的关系 - ziyouzy/2021blog GitHub Wiki

说个细节:

“注意:这里的 [email protected] 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
 现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。”

这篇文章对ssh与密钥做了较为细致的解释:

https://blog.csdn.net/liuhaomatou/article/details/51396557

首先,ssh和密钥也是两个独立的技术实现

ssh是一种远程登录系统,之前我尝试用宿主机连接主机编程其实就是用了ssh技术

他会让你选择两种登录模式

一种是传统的用户名+密码

另一种是免登录的密钥模式

github和gitee都是采用了ssh技术,同时,不是一个项目绑定一个密钥,而是一个github账户绑定一个密钥(这句话说的不全对)

而他们需要用到ssh技术的地方,并不是账户登录时,而是当用户在本地尝试与远程仓库同步(任何一个仓库,而不是某一个),或者进行尝试进行本地仓库与远程新仓库的关联,或解关联时候会用到

同时,使用方式也是遵循ssh标准的,也就是本地终端发出指令后,可以选择用户名密码登录方式,以及密钥登录方式

由此看出,对于github远程仓库,论坛有论坛的一套权限系统,仓库有仓库的一套权限系统

或者说,git仓库的使用方式是git设计者定的,github只是一个展示代码的论坛,是彼此独立的两套系统

github没有单独设计上传代码的接口,而是采用了git原本的方式,而git原本实现同步代码的方式,正是使用了ssh这个软件

回过头来,思考一下git本地与远程之间是项目与项目之间的密钥关系,还是主机与主机之间的密钥关系

答案是后者,因为ssh本来就是解决两台主机之间的安全登录问题,ssh没有实现针对git某一个项目的密钥安全通信需求

同时git也只是组合了ssh功能模块,并没有继承他或重构他从而实现自身的诸如针对某个项目的密钥安全需求