首页 > 其他分享 >为什么Git远程仓库中要配置公钥?

为什么Git远程仓库中要配置公钥?

时间:2022-12-07 13:12:09浏览次数:56  
标签:Git 加密 解密 公钥 私钥 中要 远程 客户端

最近在使用阿里云效平台代码管理,首次使用新建仓库,使用SSH时需要配置公钥。之前也在GitHub、Gitee上配置过,每次都能正常使用,也没有思考过为什么要配置公钥。这次记录一下其中的原理。
本地和远程仓库通信时,需要认证、加密,如果每次pull、push时都输入密码会十分麻烦。
使用SSH则仅需将本机生成的公钥配置到远程仓库中,上传代码时,本机使用私钥加密,远程仓库使用我们配置的公钥解密验证。这样可以实现认证的功能。
公钥登录
  公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:

    1、客户端生成RSA公钥和私钥

    2、客户端将自己的公钥存放到服务器

    3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端

    4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器

    5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
公钥和私钥:

  1. 一个公钥对应一个私钥。
  2. 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
  3. 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
  4. 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。

RSA算法(非对称加密)的作用:
一、加密:公钥加密私钥解密
  主要用于将数据资料加密不被其他人非法获取,保证数据安全性。使用公钥将数据资料加密,只有私钥可以解密。即使密文在网络上被第三方获取由于没有私钥则无法解密。从而保证数据安全性。     

  1. A在自己电脑上生成RSA钥匙文件,一个私钥文件一个公钥文件,并将他的公钥传送给B。
  2. 此时B要传送信息给A,于是B用A的公钥加密他的消息,然后传送给A。【网络上传输的密文,没有A的私钥无法解密,其他人获取之后也没用】
  3. A用他的私钥解密B的消息。

二、认证:私钥加密公钥解密
  主要用于身份验证,判断某个身份的真实性。使用私钥加密之后,用对应的公钥解密从而验证身份真实性。

A要验证B是否是真实用户

   1、B将自己公钥给A(在远程仓库添加我们的公钥)

   2、B将文件用自己私钥加密传送给A

   3、A根据B的公钥解密,如果成功则为真实身份用户

和https有些相似,但没有CA认证中心(在远程仓库添加我们的公钥这个操作类似给远程颁发证书,并达到验证身份的作用,而CA只是达到加密作用)
参考:https://www.cnblogs.com/fengfengyang/p/15519311.html

标签:Git,加密,解密,公钥,私钥,中要,远程,客户端
From: https://www.cnblogs.com/BetterCallSaul/p/16962784.html

相关文章

  • 一个人坚持了五年的开源项目 - 开发管理方面可完全替代GitLab
    简介:大家好,我是枫哥,......
  • Git 常见错误 之 error: src refspec xxx does not match any / error: failed to pus
    一、简单介绍Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。[1]Git是LinusTorvalds为了帮助管理Linux......
  • Java—bouncycastle支持国密SM2的公钥加密算法
    Java—bouncycastle支持国密SM2的公钥加密算法java代码是依赖BouncyCastle类库,经修改此类库中的 SM2Engin 类的原码而来,用于支持SM2公钥加密算法,符合:《GM/T000......
  • 在实际项目中git的基本使用方法
    目录​​了解git的基本指令​​​​想要将本地代码上传到远程仓库最基本的三条命令​​​​关于分支的命令​​​​ 项目中常见的问题及解决方法​​​​ 本地创建的项目......
  • 欢迎来到GitHub的世界
    我将为你讲解GitHub是什么,以及为什么全世界的开发者都在使用它。同时,还会带您一起考察GitHub为开源软件世界带来了怎样的变革。什么是GitHubGitHub是为开发者提供Git仓库的......
  • gitee建立远程仓库
    1.   新建仓库2.    (1),若本地已经写有代码,则:1,初始化:   2,暂存:   3,提交到本地:   4,本地和远程仓库建立联系......
  • KaLi下载与无法clone GitHub项目
    1.下载地址链接vm安装即可账户密码默认kali**打开终端**输入sudoaptupdate&&sudoaptupgarde更新如git项目失败方式一:查询是否使用代理了gitconfig-......
  • git
    初始化创建一个仓库gitinitgitinitnewrepo//会在newrepo里面创建一个.git同时会生成一个.git文件文件里面生成的源数据,保存的info在仓库里面田间gitadd(filena......
  • git基本操作
    1、常见命令1.1、gitinit用来初始化一个Git仓库,执行完命令后会生成一个.git目录1.2、编辑git配置文件gitconfig--globaluser.name“用户名”/gitconfig--glo......
  • Git分布式版本控制工具
    Git分布式版本控制工具1.Git工作流程图命令:clone(克隆):从远程仓库中克隆代码到本地仓库checkout(检出):从本地仓库中检出一个仓库分支然后进行修订add(添加):在提交......