git配置远程仓库的认证信息

git配置远程仓库的认证信息

  • 远程仓库的认证信息是什么?为何需要?
    • 如果不配置认证信息的话
  • 配置认证信息的方式有哪些?
    • 用户名和密码
    • Git 凭证助手(Credential Helper)
    • SSH密钥认证
    • 使用主机认证信息的配置文件~/.netrc

远程仓库的认证信息是什么?为何需要?

用户在使用 Git 与远程仓库交互(比如:从远程仓库拉取/推送代码)时,远程仓库需要验证用户身份信息(不然岂不是谁都可以拉取代码了)来控制用户对远程仓库的访问权限,而这个身份信息就是认证信息。

如果不配置认证信息的话

如果我们不配置认证信息的话,每次拉取代码时,git就会默认采用用户名和密码的方式来进行认证:git都会让用户输入用户名和密码,但是拉取/推送操作是个挺频繁的操作,所以不配的话,你会😡的。

配置认证信息的方式有哪些?

Git 支持多种方式来配置和管理认证信息,常见的远程仓库认证方式:

  • 用户名和密码
  • SSH 密钥、
  • 令牌(如 GitHub 的 PAT)
  • 凭证管理器等

根据安全需求和便捷性需求,选择适合的认证方式能够有效提升工作效率,且能确保安全性。

下面分别详细讲讲一些配置认证信息的方式。

用户名和密码

这是最传统的认证方式,尤其适用于早期git服务。

特点

  • 繁琐
    • 每次访问远程仓库都给输入一次
  • 安全性低

配置方法

  • 方法1
    • 当使用HTTP/HTTPS协议访问远程仓库时,Git会要求用户输入用户名和密码来进行认证身份
  • 方法2
    • 直接在 URL 中嵌入用户名和密码
      git clone https://<username>:<password>@github.com/YourRepo.git
      

Git 凭证助手(Credential Helper)

Git 提供了一种凭证管理工具 credential helper,可以将 HTTPS 凭证缓存到内存中,或存储到磁盘中,从而避免每次都重新输入用户名和 PAT。

Git credential helper 支持多种存储方式,包括:

  • cache:将凭证 临时 缓存到内存当中(默认15分钟)

    • Git 支持在本地缓存用户名和密码,缓存时间默认为 15 分钟,可通过以下命令设置:
      git config --global credential.helper cache
      git config --global credential.helper 'cache --timeout=3600'  # 设置缓存时间为 1 小时
      
    • 如果需要清除已缓存的认证信息,可以运行:
      git credential-cache exit
      
  • store:将凭证永久保存在纯文本文件(~/.git-credentials)

    git config --global credential.helper store
    
      执行上述命令后,在下一次需要认证时输入用户名和密码,Git 会将其保存到 ~/.git-credentials 文件中
    
  • manager:在windows或mac系统上使用原生的Git Credential Manager 来安全存储和管理凭证。

    git config --global credential.helper manager
    

SSH密钥认证

SSH(Secure Shell)是一种加密协议,通过密钥对来进行认证安全认证的,所以不需要输入用户名和密码。
密钥对简述

  • 分为公钥和私钥
    • 公钥:
      • 加密发送信息用的
      • 公开的,放在远程仓库上
    • 私钥:
      • 解密接收信息用的
      • 私有的,只存放在用户这边
  • 工作原理
    • 当用户访问远端仓库时,远程仓库对用户进行认证(远程仓库检查用户是否有与其公钥相匹配的私钥)
      1. 远程仓库(服务器)随机生成一个随机数用公钥加密后发送给用户(客户端)
      2. 客户端接收到数据后用私钥解密为原数据,发送回给远程仓库
      3. 远程仓库经过对客户端发送来的数据与自己生成的随机数进行对比是否相同,来判断客户端是否有与其公钥匹配的私钥

特点

  • 自动化、便捷
    • 配置完之后访问远程仓库就不需要额外手动进行认证了,会自动进行密钥对认证
  • 安全性高

配置

  1. 先得有一对SSH密钥(生成SSH密钥对)

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    按照提示设置密钥文件路径(默认是 /.ssh/id_rsa)和可选的密码保护。公钥在/.ssh/id_rsa.pub

  2. 添加 SSH 公钥到远程仓库

    # 查看公钥
    cat ~/.ssh/id_rsa.pub
    

    在 GitHub 或其他平台的「SSH 设置」中添加公钥。

  3. 测试 SSH 连接是否成功

    ssh -T git@github.com
    

    如果配置成功,您应该会看到类似以下的消息:Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.

  4. 使用SSH URL克隆远程仓库

    git clone git@github.com:username/repo.git
    

使用主机认证信息的配置文件~/.netrc

一个用于存储主机认证信息的配置文件,主要在命令行环境中自动化身份验证。
其作用是通过预先配置主机名、用户名和密码等信息,使得与远程服务交互时无需输入凭证,自动进行身份验证。通过在 .netrc 中设置这些信息,命令行工具能够在没有用户干预的情况下访问这些服务。
这对于自动化任务、批处理作业,或者频繁访问需要认证的远程服务非常有用。

.netrc 文件的基本格式,通常包括以下元素:

  • machine: 主机名或服务域名(如 github.com)。
  • login: 用于登录该主机的用户名。
  • password: 对应的密码或者身份验证令牌(如 GitHub 的个人访问令牌)。

配置方式

直接通过编辑该文件来实现
如果文件不存在的话,自己创建一个

示例:
.netrc 文件配置了两个主机的认证信息

# 对于 github.com,用户名是 my-username,密码是 my-password
machine github.com
login my-username
password my-password# 对于 example.com,用户名是 my-user,密码是 my-secret-password
machine example.com
login my-user
password my-secret-password

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/471251.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络——网络初识

目录 1. 认识协议 2. 协议的分层 3. OSI 七层模型 && TCP/IP 五层(四层)模型 4. 网络传输的基本流程 5. 以太网的通信原理 6. 数据的跨网络传播 7. 认识 IP 地址 ① IP 是什么 ② IP 与 MAC 的关系 ③ 为什么需要 IP 在谈及网络之前&#xff0c;我们要先对学…

React Hooks在现代前端开发中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 引言 React Hooks …

执行flink sql连接clickhouse库

手把手教学&#xff0c;flink connector打通clickhouse大数据库&#xff0c;通过下发flink sql&#xff0c;来使用ck。 组件版本jdk1.8flink1.17.2clickhouse23.12.2.59 1.背景 flink官方不支持clickhouse连接器&#xff0c;工作中难免会用到。 2.方案 利用GitHub大佬提供…

【机器学习】如何配置anaconda环境(无脑版)

马上就要上机器学习的实验&#xff0c;这里想写一下我配置机器学习的anaconda环境的二三事 一、首先&#xff0c;下载安装包&#xff1a; Download Now | Anaconda 二、打开安装包&#xff0c;一直点NEXT进行安装 这里要记住你要下载安装的路径在哪&#xff0c;后续配置环境…

如何保护 Microsoft 网络免受中间人攻击

一名办公室工作人员收到了一封看似来自供应商的电子邮件&#xff0c;但该邮件被隔离了&#xff0c;用户请求将其释放。这封邮件看起来没什么问题&#xff0c;因此管理员释放了这封邮件。用户点击邮件查看内容&#xff0c;其中包括一张附加发票。 问题就从这里开始&#xff1a;…

Excel筛选的操作教程

用Excel整理数据时&#xff0c;常常要用到筛选功能&#xff0c;很多复杂的数据经过一定条件的筛选后就变得很清晰。筛选也是Excel的一个基本功能之一&#xff0c;你会使用这个功能吗&#xff1f;不会也没关系&#xff0c;接着往下看&#xff0c;接下来就来演示一些Excel表格筛选…

爬虫补环境案例---问财网(rpc,jsdom,代理,selenium)

目录 一.环境检测 1. 什么是环境检测 2.案例讲解 二 .吐环境脚本 1. 简介 2. 基础使用方法 3.数据返回 4. 完整代理使用 5. 代理封装 6. 封装所有使用方法 jsdom补环境 1. 环境安装 2. 基本使用 3. 添加参数形式 Selenium补环境 1. 简介 2.实战案例 1. 逆向目…

JAVA:探索 EasyExcel 的技术指南

1、简述 在 Java 开发中&#xff0c;Excel 文件的读写操作是一项常见的需求。阿里巴巴开源的 EasyExcel 提供了一种高效、简洁的解决方案&#xff0c;特别是在处理大规模数据时表现尤为突出。本文将详细介绍 EasyExcel 的优缺点、应用场景&#xff0c;并通过实例展示其基本用法…

力扣662:二叉树的最大宽度

给你一棵二叉树的根节点 root &#xff0c;返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点&#xff08;即&#xff0c;两个端点&#xff09;之间的长度。将这个二叉树视作与满二叉树结构相同&#xff0c;两端…

Elasticsearch基本概念及使用

Elasticsearch 是一个开源的、分布式的全文搜索和分析引擎&#xff0c;基于 Apache Lucene 构建。它提供了快速的搜索能力&#xff0c;支持大规模的数据分析&#xff0c;广泛应用于日志分析、全文搜索、监控系统和商业智能等领域。ES操作指令是基于restAPI构建&#xff0c;也就…

Vue.js 项目创建流程

Vue.js 项目创建流程 以下是一个详细的步骤指南&#xff0c;用于在Windows系统上使用NVM&#xff08;Node Version Manager&#xff09;和npm创建一个新的Vue.js项目。 1. 安装Node.js指定版本 首先&#xff0c;使用NVM安装Node.js的20.18.0版本。 nvm install 20输出示例&…

如何判定linux系统CPU的核心架构

背景 在开发一个项目的时候&#xff0c;需要配置安装PyTorch环境&#xff0c;自己电脑以前下载过这个相关的包&#xff0c;但是是X86架构的&#xff0c;不知道复制到Linux系统后能否直接使用&#xff0c;于是想着去确认一下&#xff0c;并把自己的方法总结一下,自己下载的文件…

Vue2:组件

Vue2&#xff1a;组件 非单文件组件定义注册使用 单文件组件 组件是Vue中最核心的内容&#xff0c;在编写页面时&#xff0c;将整个页面视为一个个组件&#xff0c;再把组件拼接起来&#xff0c;这样每个组件之间相互独立&#xff0c;有自己的结构样式&#xff0c;使页面编写思…

408模拟卷较难题(无分类)

模拟卷特别是大题还是很有难度的&#xff0c;而且有些题有错&#xff0c;还是先把真题吃透&#xff0c;后面没时间的话就不整理了。 一棵树转化为二叉树&#xff0c;那么这棵二叉树一定为右子树为空的树 计算不同种形态&#xff0c;即计算6个结点的二叉树有几种形态&#xff0c…

(六)Spark大数据开发实战:豆瓣电影数据处理与分析(scala版)

目录 一、Spark 二、数据介绍 三、Spark大数据开发实战(Scala) 1、数据文件上传HDFS 2、导入模块及数据 3、数据统计与分析 ①、计算演员参演电影数 ②、依次罗列电影番位前十的演员 ③、按照番位计算演员参演电影数 ④、求每位演员所有参演电影中的最早、最晚上映…

SpringMVC学习笔记(二)

五、Rest风格编程 &#xff08;一&#xff09;Rest风格URL规范介绍 1、什么是restful RESTful架构&#xff0c;就是目前最流行的一种互联网软件架构风格。它结构清晰、符合标准、易于理解、扩展方便&#xff0c;所以正得到越来越多网站的采用。REST这个词&#xff0c;是Roy T…

PyTorch深度学习与企业级项目实战-预训练语言模型GPT

【图书推荐】《PyTorch深度学习与企业级项目实战》-CSDN博客 13个PyTorch深度学习案例简介-CSDN博客 《PyTorch深度学习与企业级项目实战&#xff08;人工智能技术丛书&#xff09;》(宋立桓&#xff0c;宋立林)【摘要 书评 试读】- 京东图书 (jd.com) PyTorch深度学习算法与…

CTF攻防世界小白刷题自学笔记13

1.fileinclude,难度&#xff1a;1,方向&#xff1a;Web 题目来源:宜兴网信办 题目描述:无 给一下题目链接&#xff1a;攻防世界Web方向新手模式第16题。 打开一看给了很多提示&#xff0c;什么language在index.php的第九行&#xff0c;flag在flag.php中&#xff0c;但事情显…

【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题

前言 qt、qml项目经常会涉及访问MySQL数据库、网络服务器&#xff0c;并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据&#xff0c;如果网络不通&#xff0c;卡个几十秒&#xff0c;会让用户觉得非常的不爽&#xff0c;本文从技术调研的角度讲解解决此类问…

基于OpenCV的自制Python访客识别程序

这是我用Pyqt5&#xff0c;基于OpenCV做的一个Python访客识别程序&#xff0c;它具体包括如下5个功能&#xff1a; 1、选择媒体菜单&#xff0c;可以打开本地摄像头&#xff1b;如果知道rtsp地址&#xff0c;则可以直接访问局域网内的网络串流。 2、选择播放菜单&#xff0c;…