在gitlab,github上面拷贝代码时,通常用到了git clone ssh://XXX命令。其中ssh指secure shell(一种安全的网络协议),git使用这种协议进行远程加密登录。

配置SSH

git使用SSH配置, 初始需要以下三个步骤

  1. 使用秘钥生成工具生成rsa秘钥和公钥
  2. 将rsa公钥添加到代码托管平台
  3. 将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件
  • 使用ssh-keygen命令来创建密钥对, 默认保存路径为~/.ssh/下, 一般id_rsa为私钥,id_rsa.pub为公钥。
  • 使用cat ~/.ssh/id_rsa.pub命令获取公钥,然后拷贝到托管网页上, 一般是setting(设置)——>SSH Keys里面添加
  • 对于在默认路径~/.ssh/下生成的id_rsa密钥对,任何ssh client是可以直接读取到,不需要额外配置

验证原理

SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在git中一般命名为id_rsa.pub, id_rsa。

那么如何使用生成的一个私钥一个公钥进行验证呢?

  • 本地生成一个密钥对,其中公钥放到远程主机,私钥保存在本地
  • 当本地主机需要登录远程主机时,本地主机向远程主机发送一个登录请求,远程收到消息后,返回一个随机生成的字符串,本地拿到该字符串,用存放在本地的私钥进行加密,再次发送到远程,远程用之前存放在远程的公钥对本地发送过来加密过的字符串进行解密,如果解密后与源字符串等同,则认证成功。

验证原理

特点

  • ssh方式单独使用非对称的秘钥进行认证和加密传输,和账号密码分离开来,不需要账号也可以访问repo。
  • 生成和管理秘钥有点繁琐,需要管理员添加成员的public key。不能进行匿名访问,ssh不利于对权限进行细分,用户必须具有通过SSH协议访问你主机的权限,才能进行下一步操作,比较适合内部项目

git的ssh key使用和原理相关推荐

  1. github 公钥 私钥_ubuntu git生成ssh key (公钥私钥)配置github或者码云

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...

  2. 代码管理git生成ssh key (公钥私钥)配置GitLab

    git生成ssh key 配置GitLab git在我们日常项目管理中起了很大的作用,是我们能够更好地管理我们的代码,git的管理是基于ssh密钥进行的,所以在使用前我们需要进行ssh配置. 首先我们 ...

  3. Git 中 SSH key 生成步骤

    由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在此之前,必须要生成SSH key. 第1步:创建SSH Key.在windows下 ...

  4. win7 git 添加 ssh key

     分两步走,借助git bash客户端: 第一步:生成秘钥 创建SSH key. 在用户主目录下, 看看有没有.ssh目录, 如果有, 再看看这个目录下有没有id_rsa 和 id_rsa.pub 这 ...

  5. git 生成ssh key_ubuntu git生成ssh key (公钥私钥)配置github或者码云

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 设置Git的user name和email: git confi ...

  6. 使用 Git 生成 SSH Key 并将项目上传到 GitHub

    官方下载git: https://git-scm.com/ 密钥部分: 2.打开Git Bash 并输入 $ ssh-keygen -t rsa -b 4096 -C "2653208961 ...

  7. git clone 报错 Permission denied (publickey,password).git配置ssh key

    翻译下这段英文,大概意思是: 权限被拒绝(公钥.密码).无法从远程存储库中读取. 解决方式:创建ssh key.配置git 1.设置username和email(github每次commit都会记录他 ...

  8. GIT | git添加ssh key

    场景: You won't be able to pull or push project code via SSH until you add an SSH key to your profile ...

  9. Window下git生成SSH Key以及格式转换

    1.确保已经安装了git工具. 2.在鼠标右键中选择"Git Bash Here"打开命令窗口. 3.输入命令"cd ~/.ssh/",进入到.ssh文件夹 c ...

  10. GIT 生成 SSH key

    1.先配置 git config --global user.name "pangchengyong" git config --global user.email "p ...

最新文章

  1. 如何在LINUX里用su切换用户
  2. Java 垃圾回收机 GC Roots详解(Garbage Collection Roots)
  3. 计算机视觉库OpenCV之saturate_cast防数据越界函数
  4. 谋定国家5G战略的基石-工信部韦乐平:经信研究网络领先
  5. JSON格式以及基本用法
  6. 热点的ap频段哪个快_WLAN中无线AP信道的划分
  7. nw.js package一般设置
  8. 【高危漏洞通告】Spring Framework 远程代码执行 (CVE-2022-22965)
  9. 瀑布流JavaScript
  10. ThinkPHP学生社团管理系统
  11. 生意参谋transit-id生成和data解密python版
  12. LeetCode刷题:矩阵快速幂
  13. 1949-2017闰年 c语言,1949年到2017年里有多少个闰年,多少个平年
  14. OFFICE激活报错0X80080005
  15. 安装sklearn-poter遇到报错(TypeError:‘encoding‘ is an invalid keyword argument for this function)
  16. Golang 数组的一些自问自答
  17. Android Studio超级详细安装教程(AMD)
  18. lsdyna如何设置set中的node_list_关于如何快速调教NGINX的几点总结
  19. 使用mockjson-server 搭建 mock-server
  20. 2021了,最流行的密码依旧是123456

热门文章

  1. 十二年10次IT大考 猪八戒网的系统架构和开发流程经历了什么?
  2. Uniapp对图片进行canvas压缩的方法(详解)
  3. 爬虫遇到字体动态加密?这样来解决
  4. VBScript:WScript 根对象
  5. VSe2 CDW态能带计算
  6. 用Java读取图片文件属性中的详细信息数据
  7. Java复习笔记-03
  8. Cyrus SASL Libary 学习
  9. 放弃webstrom转战vscode
  10. mysql查询基本操作一(Navicat Premium 15)