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”后,就把输入界面改到终端了:
❗️❗️❗️这里的用户名就是全局中存储的用户名,但是密码不是那个邮箱了,尝试后会有如下报错信息❌❌❌。
原因:自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密钥配置

相关文章:
git clone,用https还是ssh
前言 在使用Git去克隆项目时,会遇到https和ssh等形式,这两种又有何种区别呢,本文将重点讨论在具体使用中的问题。 注:第一次使用Git 时,需要先设置全局用户名和邮箱,否则后续使用命令时会报错,也是提醒先添…...
量化交易系统开发-实时行情自动化交易-Okex行情交易数据
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于Okex交易所API获取行情数…...
【重装系统后重新配置2】pycharm 终端无法激活conda环境
pycharm 终端无法激活 conda 环境,但是 Windows本地终端是可以激活的 原因是pycharm 默认的终端是 Windows PowerShell 解决方法有两个: 一、在设置里,修改为cmd 二、下面直接选择...
【LeetCode每日一题】——802.找到最终的安全状态
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 图 二【题目难度】 中等 三【题目编号】 802.找到最终的安全状态 四【题目描述】 有一个有…...
kafka安装部署--详细教程
2.1 安装部署 每次进入 linux 都会自动进入 base 环境,如何关闭 base conda deactivate 手动关闭 conda config --set auto_activate_base false 关闭自动进入 2.1.1 集群规划 bigdata01 bigdata02 bigdata03 zk zk zk kafka kafka kafka 2.1.2 集群部…...
CMD 查询python 出现 No pyvenv.cfg file 很奇怪 2024/11/9
CMD 查询python 出现 No pyvenv.cfg file 很奇怪 查询得到我有很多个...........版本 删除这个变量就不会 因为 没有安装软件 跳转到 Windows 商店 再把主要使用的python路径置顶 现在运行cmd查询 对比之前的图片 可以发现 这一条商店的没有了! 完整测试效果,问题解决了!...
learnopencv系列二:U2-Net/IS-Net图像分割(背景减除)算法、使用背景减除实现视频转ppt应用
文章目录 一、视频转幻灯片应用1.1 什么是背景减除?1.1.1 背景减除简介1.1.2 bgslibrary 1.2 OpenCV背景减除技术1.3 差异哈希1.3.1 图像哈希技术1.3.2 dHash算法1.3.3 图像哈希的速度和准确性测试 1.4 视频转幻灯片应用的工作流程1.5 项目代码1.5.1 环境准备1.5.2 …...
linux命令详解,文件系统权限相关
文件系统权限相关 linux系统中一切都是文件 查看权限 Is -la /etc/passwd更改文件所有者 chown root file修改文件权限 sudo chmod urwx,grw,o-r file sudo chmod ux,gtw,o-r file chmod 400 <file>一、Linux系统中一切都是文件 在linux系统中,几乎所有的…...
2024-11-5 学习人工智能的Day22 openCV(4)
face_recognition 介绍 face_recognition 是一个非常流行的 Python 库,专门用于人脸识别任务。它基于 dlib 库和 HOG(Histogram of Oriented Gradients)特征以及深度学习模型,提供了简单易用的接口来进行人脸检测、面部特征点定位…...
JavaScript 网页设计详解教程
JavaScript 网页设计详解教程 引言 JavaScript 是一种广泛使用的编程语言,主要用于网页开发。它使得网页具有动态交互性,能够响应用户的操作。随着前端开发的不断发展,JavaScript 已成为现代网页设计中不可或缺的一部分。本文将详细介绍 Ja…...
技术复杂性导致估算不准确?5大对策
技术复杂性引发的估算不准确可能导致成本超出预算,不当的资源分配则可能造成人力浪费或关键任务缺乏必要支持,进而影响客户满意度和市场竞争力,增加项目失败的风险。而有效避免因技术复杂性导致的估算不准确问题,可以显著提升项目…...
【JavaEE初阶 — 多线程】死锁的产生原因和解决方法
目录 死锁 1.构成死锁的场景 (1) 一个线程一把锁 问题描述 解决方案(可重入锁) (2) 两个线程两把锁 问题描述 (3)N个线程 M把锁 哲学家就餐问题 2.死锁的四个必要条件 3.如何解决死锁问题 (1)避免出现请求和保持 (2)打破多个线程的循环等待关系 死锁…...
mapper.xml 使用大于号、小于号示例
<mapper namespace"com.example.EmployeeMapper"><!-- 更新employee_absent_resign_statistics表中的pre_work_date --><update id"updatePreWorkDate"><




❗️❗️❗️生成token并输入成功push后,再次push发现还是得输入,这就是https类型的弊端,每次push都需要进行验证😟😟😟>解决方案:






