详细解释Github和用户端通过SSH建立连接的过程

SSH 连接建立的步骤

  1. 你生成一对密钥:公钥和私钥
    你在本地计算机(客户端)上生成一对 SSH 密钥,这对密钥包括:

    • 公钥id_rsa.pub),可以公开分享。
    • 私钥id_rsa),必须保持秘密,仅存储在你的机器上。

    你将 公钥 上传到 GitHub 或其他服务,这样 GitHub 就能识别你,并允许你通过 SSH 进行操作(例如,推送代码、拉取代码)。

  2. 公钥上传到 GitHub

    • 你将公钥添加到 GitHub 上的 SSH and GPG keys 页面。GitHub 通过保存你的公钥来允许验证来自你客户端的连接请求。
  3. 客户端发起连接请求
    当你在 Git 客户端(例如 git pushgit pull)执行命令时,客户端会向 GitHub 发起连接请求。此时,GitHub 会要求你通过 SSH 进行身份验证。

  4. 客户端使用私钥进行身份验证

    • 当连接请求发送到 GitHub 时,客户端会使用它的 私钥 对请求进行签名。
    • 签名过程是生成一个加密的哈希值,这个哈希值表示连接请求的内容。
    • 私钥用于 签署 连接请求,证明这是来自你拥有对应公钥的机器,而不是其他任何人。
  5. GitHub 使用公钥来验证签名

    • GitHub 收到连接请求后,它会查找你上传的 公钥(你在 GitHub 设置中上传的那个公钥)。GitHub 会用这个公钥来 验证 客户端签名的有效性。
    • 公钥是 用来解密签名 的,因为公钥和私钥是成对的。也就是说,只有拥有相应私钥的人才能生成能够被公钥验证的签名。
  6. 验证成功,建立连接

    • 如果 GitHub 能够成功地使用公钥解密签名并验证其有效性,GitHub 就知道你是这个公钥的所有者,身份得到确认。
    • 经过验证后,GitHub 就会允许你执行操作,例如拉取代码或推送代码

白话:”客户端发送请求的时候附带了”个人特征的信息“,由于Github端存储了匹配你的一些个人特征,所以可以直接认出是你“

同一对公私钥,才可以加解密;
背后的数学原理需要自行了解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值