获取Git权限的三种方式

news2024/11/17 12:36:10

获取Git权限的三种方式

  • 写在最前
  • 1. HTTPS配合用户名和密码访问Git
  • 1.1 获取当前项目的用户和密码
    • 1.2 通过临时用户获取Git权限
  • 2. HTTPS配合token访问Git
    • 2.1 创建token
    • 2.2 HTTPS配合token获取Git权限
  • 3. SSH访问Git
    • 3.1 生成SSH公钥和私钥
    • 3.2 使用SSH获取Git权限

写在最前

  1. 本文以为Azure Devlop的平台为例子操作三种获取Git权限的办法
  2. Github、Gitlab、Gitee、Gitcode等平台操作类似
  3. 主要是便于理解获取Git权限的几种采用方式
  4. Git工具安装时,如果没有特别勾选不安装SSH,默认是Git安装好之后是会携带了SSH工具
  5. 本文以git clone指令拉取代码为例子,当没有权限获取项目时,会出现类似错误:
R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest $ git clone
https://XXXX8009@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject
Cloning into 'GitTestProject'... fatal: User canceled authentication.
error: unable to read askpass response from
'D:/Git/mingw64/bin/git-askpass.exe' Password for
'https://XXXX8009@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject':
fatal: Authentication failed for
'https://dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject/'

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest $ git clone
git@ssh.dev.azure.com:v3/XXXX8009/GitTestProject/GitTestProject
Cloning into 'GitTestProject'... Load key
"/c/Users/R7000/.ssh/id_rsa": invalid format git@ssh.dev.azure.com's
password: Permission denied, please try again. git@ssh.dev.azure.com's
password: Permission denied, please try again. git@ssh.dev.azure.com's
password: git@ssh.dev.azure.com: Permission denied
(password,publickey). fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository
exists.

1. HTTPS配合用户名和密码访问Git

1.1 获取当前项目的用户和密码

    1. 选择项目的方式为HTTPS:
      在这里插入图片描述在这里插入图片描述
    1. 生成用户名和密码
      在这里插入图片描述

1.2 通过临时用户获取Git权限

    1. 由于Azure比较特殊会提示登录VS,这边取消了登录VS会提示fatal: User canceled authentication.但是用户名和密码是可以使用的
R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest
$ git clone https://XXXX8009@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject
Cloning into 'GitTestProject'...
fatal: User canceled authentication.
remote: Azure Repos
remote: Found 22 objects to send. (2 ms)
Unpacking objects: 100% (22/22), 5.62 KiB | 122.00 KiB/s, done.

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean
    1. 这里打开项目里面的.git文件夹查看config文件
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://XXXX8009@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

2. HTTPS配合token访问Git

2.1 创建token

    1. 点击Personal access token按钮 创建token
      在这里插入图片描述
    1. 跳转之后点击New token

在这里插入图片描述

    1. 输入名字和时间以及权限之后创建token,千万保存并记录好token秘钥那串字符数字

在这里插入图片描述

    1. 有意思的是之前自动生成用户名和密码 实际上也是携带了一个token,为什么这么猜测呢,因为之后查看用token获取权限后的config文件可以看出
      在这里插入图片描述

2.2 HTTPS配合token获取Git权限

    1. 同样拉去代码,选择HTTPS的方式,这里不需要创建用户名和密码

在这里插入图片描述

    1. 打开git bash,手动在git 连接前面 @开头的信息去掉换成token信息,即原来的git连接为https://XXXX8009@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject现在的为https://XXXXXXXXXXXXXXXX7pgv6xxfeigim7ygw3lydz4xbpo7vyy2q@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject
R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest
$ git clone https://XXXXXXXXXXXXXXXX7pgv6xxfeigim7ygw3lydz4xbpo7vyy2q@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject
Cloning into 'GitTestProject'...
remote: Azure Repos
remote: Found 22 objects to send. (19 ms)
Unpacking objects: 100% (22/22), 5.62 KiB | 85.00 KiB/s, done.

    1. 此时的项目下的git config信息中的URL是携带token的,可以猜测之前随机生成的用户名和密码时,也是携带了token信息
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://XXXXXXXXXXXXXXXX7pgv6xxfeigim7ygw3lydz4xbpo7vyy2q@dev.azure.com/XXXX8009/GitTestProject/_git/GitTestProject
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

3. SSH访问Git

3.1 生成SSH公钥和私钥

    1. 打开cmd或者git bash,输入ssh-keygen -t rsa,为了方便,提示选项可以enter键跳过,最后生成文件在C盘用户目录的.ssh文件夹下,如这里的/c/Users/R7000/.ssh/,其中.pub为公钥
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/R7000/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/R7000/.ssh/id_rsa
Your public key has been saved in /c/Users/R7000/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:QevS8lBgx8OihC4ipYP+4fmg1vBuH9DrXTuzqRHmq2A R7000@DESKTOP-30AFPHP
The key's randomart image is:
+---[RSA 3072]----+
|   .  ooo        |
|  o ...++.       |
|.+ . . .+.       |
|B . o  + .       |
|+o . .+oS        |
| o .. +=.        |
|  *Eoo o..       |
| .oB+ o +oo      |
|..o.o=.+.++      |
+----[SHA256]-----+

在这里插入图片描述

    1. 复制公钥信息,到代码仓库的SSH中

在这里插入图片描述

    1. 点击添加SSH KEY:
      在这里插入图片描述
    1. 将公钥信息复制进去,其中Name自定义
      在这里插入图片描述
      在这里插入图片描述

在这里插入图片描述

3.2 使用SSH获取Git权限

    1. 添加成功SSH信息之后,利用SSH连接就可以直接获取Git权限了
R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest
$ git clone git@ssh.dev.azure.com:v3/XXXX8009/GitTestProject/GitTestProject
Cloning into 'GitTestProject'...
remote: Azure Repos
remote: Found 22 objects to send. (6 ms)
Receiving objects: 100% (22/22), 5.64 KiB | 1.41 MiB/s, done.
Resolving deltas: 100% (1/1), done.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣(LeetCode)375. 猜数字大小 II(2023.01.08)

我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选的数字比你的 更大或者更小 ,并…

接口测试——postman和Jemter

接口测试——postman和Jemterpostmanpostman工作原理postman入门postman的基础用法postman的高级用法使用postman管理测试用例批量执行测试用例postman断言环境变量和全局变量postman关联postman请求前置脚本postman参数化及生成测试报告参数化与数据驱动postman生成测试报告je…

(十五)内部类简述

目录 1.概述: 2.内部类之一:静态内部类 3.内部类之二:成员内部类 4.内部类之三:局部内部类 5.内部类之四:匿名内部类 1.概述: 内部类就是定义在一个类里面的类,里面的类可以理解成(寄生)。 2.内部类的使用场景、作用: ①当一个事务的内部,还…

GIT zip下载和clone下载的代码不一致?

问题场景 今天我在下载公司项目的时候遇到了一个问题,我选择了一个分支a,通过下载zip的代码发现是全的,而我通过clone的时候发现显示的是master上的代码 原因 其实是clone下载下来了,但是我idea中分支打开时默认选择的是master分支…

Compose 动画入门 (二) : 为什么animateDpAsState要用val ? MutableState和State有什么区别 ?

1. 前言 我们首先来实现一个Compose的动画(animateDpAsState) var big by remember {mutableStateOf(false) } val size by animateDpAsState(if (big) 100.dp else 50.dp)Box(Modifier.size(size).background(Color.Blue).clickable {big !big}) {}运行程序,来看…

第56篇-利用JSRpc分析某尾波的登录参数【2023-01-09】

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、JsRpc的基本使用1.准备工作2.简单使用三、利用JSRpc分析尾波的登录参数1.网站分析2.构建rpc一、前言 以前使…

LabVIEW控制前面板对象

LabVIEW控制前面板对象控件引用句柄在引用句柄和经典引用句柄选板上,它可将前面板对象的引用传输给其它VI。右键单击前面板对象,从快捷菜单中选择创建引用,可建立一个VI服务器引用。而且,也可在程序框图上的VI服务器常量中找到前面…

2023年01月IDE流行度最新排名

点击查看最新IDE流行度最新排名(每月更新) 2023年01月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…

高性能分布式缓存Redis-第一篇章

高性能分布式缓存Redis-第一篇章一、缓存发展史&缓存分类1.1、大型网站中缓存的使用1.2、常见缓存的分类1.3、分布式缓存选型方案对比二、Redis概述&安装配置2.1、概述2.2、安装&配置三、数据类型选择&应用场景3.1、Redis的Key的设计规范3.1.1、key名设计3.1.2…

Linux中常用命令(初学整理附实例和自己的理解)

目录 00.tree命令 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令 06.rmdir指令 && rm 指令 07.man指令 08.热键tab键 09.nano 10.stat 11.cp指令 12.mv指令 13. cat 14.more指令 15.less指令 16.head指令 17.tail指令 18.wc 19.echo 20.…

运营商云从ATH虎口夺食?

配图来自Canva可画 如今在云计算领域,国内市场与国际市场的分化越来越显著,国内市场也在走出与国际市场不同的路径,而其中最大的变量则是来自三大运营商的进场与冲击。 以天翼云、联通云以及移动云为代表,国内通讯运营商的云品牌…

挑战杯课外学术参赛作品—AI合约问卷调查系统

大学生课外学术科技作品竞赛 1.作品概述 1.1作品选题背景和意义 随着互联网技术的发展以及大数据、人工智能等新科技时代的来临,我国高校教育改革、高校人才培养也面临着新的机遇与挑战。一方面,为了实现国家战略、支撑快速发展的新经济,需…

这是一个基于Threejs的商品VR展示系统的 VR模型展示Demo

vr-cake-demo 这是一个基于Threejs的商品VR展示系统的 VR模型展示Demo Demo界面示意图 Demo蛋糕实物图片 Demo蛋糕VR效果图 研究意义 2020年,已经进入了5G时代,许许多多的行业都得开启了高速发展模式,自动驾驶行业,人工智能行业…

硬核实力!企企通荣获“千峰奖·2022年度产业互联网百强”

12月28日,由亿邦动力主办的首届“亿邦跨境产业互联网峰会暨2022年度千峰奖颁奖盛典”在武汉举办,大会现场揭晓了本年度千峰奖获奖企业名单。企企通作为采购供应链领导者,凭借在采购数字化领域的创新引领和硬核实力,荣获“千峰奖20…

Webpack实现多页面打包

1. 多页面应用(MPA)概念 单页面在开发时会把所有的业务放在一个大的入口里面去,不同的子业务还是同一个URL地址,只不过后面的hash会有所不同。 多页面相对于单页面的区别在于,项目发布上线以后,有多个入口文件,每一次…

排障定位时间缩短一半以上, 博睿数据如何赋能青岛住房公积金管理中心

*本文源自快科技,原文链接: https://news.mydrivers.com/1/882/882428.htm 近日,青岛公积金发布关于住房公积金的两则新政,惠及历史高商贷利率人群与多子女家庭。同时,为了让更广泛的人民群众享有到更加优质的公积金…

类加载器子系统

一、内存结构概述 通过类加载子系统将Class字节码文件加载到内存中 更细致的结构图: 二、类加载器与类的加载过程 2.1、类加载过程 通过一个类的全限定名获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个…

大米CMS_V5.5.3 SQL注入漏洞分析

0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www.damicms.com/downes/dami.rar 测试网站首页: 0x01 代码分析 1、首先来看…

【Qt】QtCreator新建QtWidgetsApplication

【Qt】QtCreator新建QtWidgetsApplication1、背景2、新建项目3、项目文件4、编译说明1、背景 操作系统:windows10专业版。 Qt版本:qt-opensource-windows-x86-msvc2013_64-5.7.1.exe 注意:安装了该exe可执行文件,就自动安装了qtc…

【openGauss实战3】基本概念及语法

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…