当前位置: 首页 > news >正文

git clone,用https还是ssh

前言
在使用Git去克隆项目时,会遇到https和ssh等形式,这两种又有何种区别呢,本文将重点讨论在具体使用中的问题。
:第一次使用Git 时,需要先设置全局用户名和邮箱,否则后续使用命令时会报错,也是提醒先添加信息,这个的意义就是在提交时知道是谁提交的
在这里插入图片描述

目录

  • HTTPS
    • token密码
    • credential.helper免密登录
  • SSH

HTTPS

HTTPS(全称为Hypertext Transfer Protocol Secure)是一种用于安全通信的网络协议,是HTTP(超文本传输协议)的安全版本。它在HTTP的基础上通过SSL/TLS(安全套接层/传输层安全性)协议提供了数据加密、数据完整性验证和身份验证机制。
特点: git clone 和 git pull 无限制,git push 需要提供用户名和密码

token密码

git push后要求输入用户名和密码,来验证是谁来往这个项目提交
在这里插入图片描述
点击“Cancel”后,就把输入界面改到终端了:
1
❗️❗️❗️这里的用户名就是全局中存储的用户名,但是密码不是那个邮箱了,尝试后会有如下报错信息❌❌❌。在这里插入图片描述
原因:自2021年8月13日起,GitHub不再支持密码认证,转而要求使用个人访问令牌。需要在GitHub生成token作为密码。
解决方案:Git:Support for password authentication was removed on August 13, 2021. Please use a personal

credential.helper免密登录

在这里插入图片描述❗️❗️❗️生成token并输入成功push后,再次push发现还是得输入,这就是https类型的弊端,每次push都需要进行验证😟😟😟>解决方案:credential.helper存储密码,这样在第一次输入信息后可以记录下来,之后直接调用不用手输了。

  • 检查当前credential.helper配置
    git config -l|grep credential.helper
    在这里插入图片描述
    这种就是未配置情况,每次push需要登录验证。
  • Windows下manager凭证存储模式
    在Windows环境下,下载使用git时,git会自动安装一个叫做“ Git Credential Manager”的辅助工具,设置模式为manager,记录第一次登录的信息并保存到凭据管理器中。
    在这里插入图片描述

没有可以手动设置:git config --global credential.helper manager,如下图所示⬇️
在这里插入图片描述
这个模式下,第一次push会出现下图的登录界面⬇️,可以选择浏览器登录或者token
在这里插入图片描述
token方法正常,之后会在控制面板/用户账户/凭据管理器生成一个凭据⬇️,但是浏览器那个界面打不开,不过×掉后也会出现一个凭证
在这里插入图片描述

  • cache暂存模式
    该模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,
    • 默认15分钟:
      git config --global credential.helper cache
      git config credential.helper cache
    • 自己设置时间:
      git config credential.helper 'cache --timeout=3600'这样就设置一个小时之后失效
  • store模式长期存储密码
    git config --global credential.helper store(全局)
    该模式下会将凭证用明文的形式存放在磁盘中,并且永不过期,如下图所示⬇️。
    在这里插入图片描述
  • 取消存储密码,适用于各模式
    git config --global --unset credential.helper(全局)
    git config --unset credential.helper(局部)

❗️❗️❗️因为之前设置的token过期失效,密码存储(这里也包括manager模式,不过它报错会自动删除原有凭据,并在下一次push时再次要求输入新token)的是过期的token密码,当更新完token后,再push就会出现如下密码不对的报错情况❌❌❌
在这里插入图片描述
取消密码存储并重新输入新的token密码后就可以push啦。
在这里插入图片描述

从上述操作可以看出https的验证比较麻烦😞😞😞,这就有了ssh的便捷操作⬇️⬇️⬇️。

SSH

SSH(全称为Secure Shell)也是一种网络协议,用于加密方式远程登录到服务器,以及其他网络服务的安全传输,SSH使用公钥加密技术来加密所有传输的数据,保护数据不被窃听。

特点: 在托管平台上设置 ssh public key,git push 时无需输入用户名和密码验证
具体操作参考下列两个博客,具体克隆方法不再赘述,换成ssh链接即可:
✨✨✨SSH公钥秘钥git
⭐️GitHub、Gitee、Gitlab共用一个SSH密钥配置
在这里插入图片描述

http://www.lryc.cn/news/480190.html

相关文章:

  • 量化交易系统开发-实时行情自动化交易-Okex行情交易数据
  • 【重装系统后重新配置2】pycharm 终端无法激活conda环境
  • 【LeetCode每日一题】——802.找到最终的安全状态
  • kafka安装部署--详细教程
  • CMD 查询python 出现 No pyvenv.cfg file 很奇怪 2024/11/9
  • learnopencv系列二:U2-Net/IS-Net图像分割(背景减除)算法、使用背景减除实现视频转ppt应用
  • linux命令详解,文件系统权限相关
  • 2024-11-5 学习人工智能的Day22 openCV(4)
  • JavaScript 网页设计详解教程
  • 技术复杂性导致估算不准确?5大对策
  • 【JavaEE初阶 — 多线程】死锁的产生原因和解决方法
  • mapper.xml 使用大于号、小于号示例
  • 深入了解决策树:机器学习中的经典算法
  • Flutter鸿蒙next 的 Sliver 实现自定义滚动效果
  • 杨中科 .Net Core 笔记 DI 依赖注入
  • 【RocketMQ】无法访问此网站 http://XXX:10080/ ERR_UNSAFE_PORT
  • pipreqs:快速准确生成当前项目的requirements.txt,还有和freeze的对比
  • Spark 中的 RDD 分区的设定规则与高阶函数、Lambda 表达式详解
  • redis十大数据类型
  • 国内AI工具复现GPTs效果详解
  • 【学习笔记】SAP ABAP——OPEN SQL(一)【INTO语句】
  • vscode使用之vscode-server离线安装
  • 字符编码和字符集
  • 【WRF理论第七期】WPS预处理
  • Flutter鸿蒙next中的按钮封装:自定义样式与交互
  • 代码随想录算法训练营Day57 | 卡玛网 101.孤岛的总面积、卡玛网 102.沉没孤岛、卡玛网 103. 水流问题、卡玛网 104.建造最大岛屿
  • 美团代付微信小程序系统 read.php 任意文件读取漏洞复现
  • Windows安装tensorflow的GPU版本
  • 2021-04-22 51单片机玩转点阵
  • lua入门教程:数字