为什么Git远程仓库中要配置公钥?
最近在使用阿里云效平台代码管理,首次使用新建仓库,使用SSH时需要配置公钥。之前也在GitHub、Gitee上配置过,每次都能正常使用,也没有思考过为什么要配置公钥。这次记录一下其中的原理。
本地和远程仓库通信时,需要认证、加密,如果每次pull、push时都输入密码会十分麻烦。
使用SSH则仅需将本机生成的公钥配置到远程仓库中,上传代码时,本机使用私钥加密,远程仓库使用我们配置的公钥解密验证。这样可以实现认证的功能。
公钥登录
公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
4、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
5、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
公钥和私钥:
- 一个公钥对应一个私钥。
- 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
- 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
- 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
RSA算法(非对称加密)的作用:
一、加密:公钥加密私钥解密
主要用于将数据资料加密不被其他人非法获取,保证数据安全性。使用公钥将数据资料加密,只有私钥可以解密。即使密文在网络上被第三方获取由于没有私钥则无法解密。从而保证数据安全性。
- A在自己电脑上生成RSA钥匙文件,一个私钥文件一个公钥文件,并将他的公钥传送给B。
- 此时B要传送信息给A,于是B用A的公钥加密他的消息,然后传送给A。【网络上传输的密文,没有A的私钥无法解密,其他人获取之后也没用】
- 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远程仓库中要配置公钥?的更多相关文章
- 一次性从git远程仓库中克隆到本地。
自动化工具 一次性从git远程仓库中克隆到本地. import os # git操作 将远程repo克隆到本地 def git_clone_cd_pull(url): # 获取仓库名称 如fullsp ...
- Jenkins拉取Git远程仓库中指定目录至本地指定目录
Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...
- git从远程仓库中更新代码到本地仓库
git从远程仓库中更新代码到本地仓库 有时候在使用git pull的时候,会莫名才报错.查了很多资料,尝试过git的很多命令.包括git fetch命令,都会报同样的错.最后终于发现了一条捷径,由网友 ...
- [转]git在eclipse中的配置
一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 二_使用EGIT前的配置 配置个 ...
- Git 远程仓库的管理和使用
要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库 ...
- Git远程仓库地址变更本地如何修改
以项目test为例: 老地址:http://192.168.1.1:9797/john/test.git 新地址:http://git.xxx.xxx/john/test.git 远程仓库名称: or ...
- GIT 远程仓库:添加远程库、从远程库克隆
到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...
- Git 远程仓库(分布式版本控制系统)
前言 远程仓库是指托管在因特网或其他网络中的你的项目的版本库.你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写. 1.查看远程仓库 如果想查看你已经配置的远程仓库服务器,可以运行 git ...
- Git -- 远程仓库简介
到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...
- git在eclipse中的配置 转载
git在eclipse中的配置 转载 一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EG ...
随机推荐
- Typora如何配置gitee图床
转载自:https://mp.weixin.qq.com/s/5dPLbr2vFgL18XKL1Y05Og 要求: 1.Typora需要升级到最新版 2.需要安装nodejs PicGo软件下载地址: ...
- 在Portainer上管理其他docker主机(这只是其中一种方式),另一种方式看这个文档:使用Portainer管理其他主机的docker应用有两种方式
其他主机开启远程连接docker端口 需要设置一下2375端口的监听.通过修改docker配置文件方式进行监听. 修改配置文件修改监听端口 使用Centos7安装的docker,所以下面的配置是适用于 ...
- SonarQube 插件之 Issues Report & SonarLint 的配置及使用
转载自:https://cloud.tencent.com/developer/article/1010599 1.Issues Report Plugins 介绍 使用 Issues Report ...
- POJ2486 Apple Tree(树形背包)
从每个节点u出发后有两种情况:回到u和不回到u. dp数组设为三维,第一维是节点编号,第二维是从该节点开始走的步数,第三维1/0 表示是否回到该节点. 可以回到时:dp[u][j][1]=max(dp ...
- 二叉树及其三种遍历方式的实现(基于Java)
二叉树概念: 二叉树是每个节点的度均不超过2的有序树,因此二叉树中每个节点的孩子只能是0,1或者2个,并且每个孩子都有左右之分. 位于左边的孩子称为左孩子,位于右边的孩子成为右孩子:以左孩子为根节点的 ...
- 2022-08-12-esp32把玩记-②_用Micropython点ssd1306_oled屏幕
layout: post cid: 8 title: esp32把玩记-② 用Micropython点ssd1306 oled屏幕 slug: 8 date: 2022/08/12 15:12:39 ...
- Linux实战笔记_CentOS7_yum相关配置
配置yum源优先级 配置优先级 yum -y install yum-plugin-priorities.noarch vi /etc/yum.repos.d/localISO.repo priori ...
- 解决ffmpeg的播放摄像头的延时优化问题(项目案例使用有效)
在目前的项目中使用了flv的播放摄像头的方案,但是延时达到了7-8秒,所以客户颇有微词,没有办法,只能开始优化播放延时的问题,至于对接摄像头的方案有好几种,这种咱们以后在聊,今天只要聊聊聊优化参数的问 ...
- SpringBoot→Maven项目快速搭建
使用软件 :SpringToolSuite4 打开软件后在Package Explorer 栏中点击右键 Spring starter project 等待反应 填写完毕之后点击next fi ...
- 状态估计和KalmanFilter公式的推导与应用
状态估计的概率解释 运动和观测方程: \[\left\lbrace \begin{array}{l} x_k = f(x_{k_1}, u_k) + w_k \\ z_k = h(y_j, x_k) ...