当前位置:网站首页 > C++编程 > 正文

git clone 配置账号密码(git clone 加上账号密码)



参考笔记三,P16。

git 的连接方式分为四种:ssh 连接、HTTPS 连接、SVN 连接和SVN + ssh 连接。

在这里插入图片描述

  1. 首次连接gitee时,需要输入gitee账号用户名和密码,若重新创建一个本地库,是不是还要连接一次?
  2. 假设我有两个gitee账号A、B,已连接成功A,现在我要拉取B中的一个项目,以HTTPS的方式连接B,步骤是不是跟上述相同?

在连接成功后,电脑会将gitee账号保存到凭据管理器,当下次git操作时用作身份验证。

只要下次git操作是通过HTTPS方式连接gitee,就会使用此账号进行身份验证。而电脑将gitee账号保存到凭据管理器时的标识是gitee官网的网址,是不区分个人账号的。

  1. 需要gitee账号的用户名和密码进行身份验证,那如果忘记账号怎么办?
  2. 需要去凭据管理器删除gitee账号,好麻烦。而且,若是凭据管理器中的gitee账号被恶意查看怎么办?
  3. 若项目组新进一个成员,就需要将此成员的gitee账号添加进仓库成员中,是不是每个仓库都要添加一次?

第1个不足容易解决,找回密码就行了。

第2个不足,凭据管理器中的gitee账号密码是隐藏的。若是普通操作,管理员都无法查看,但的确有一些工具可以进行查看,比如:SvnPwd。

在这里插入图片描述

ssh连接方式很好地解决了HTTPS连接方式存在的问题,其实现思路也很简单:

使用某种加密算法将某个标识和计算机Mac地址等信息进行加密,得到两条一长串字符。由于这两条字符串是由计算机Mac地址等信息加密而成,而计算机Mac地址唯一,故这两条字符串唯一,并且相互对应,这就是公钥私钥

从上述阐述中,大家可以知道。ssh连接方式不需要gitee账号进行身份验证。因为,公钥和私钥都唯一、且具有相互对应的特性,这就是最好的身份验证方法。

因此,将公钥添加进仓库的公钥管理中,连接gitee时,电脑会自行查找某个位置的私钥。如果仓库某个公钥能与此电脑上某个私钥对应上,说明这个公钥是由此电脑创建的(当然也可以说这个公钥是由其他电脑创建、然后发送到此电脑上的。这种情况我未尝试过,不过我觉得应该不可行,毕竟加密所用的mac地址不相符,而且似乎无意义,故不探讨),自然通过了身份验证,gitee连接成功。

下面我介绍一下ssh连接方式如何配置(配置所用公钥是现成的,关于创建公钥和私钥的详述后续说明):

1、配置方式一
在这里插入图片描述
在这里插入图片描述
将创建的公钥添加进仓库公钥管理中,只要满足以下两个条件,即可通过身份验证。







2、配置方式二
在这里插入图片描述
在配置方式一,大家肯定看出了一个问题:“公钥是添加在仓库公钥管理内,那多个项目是不是要逐个添加?”




配置方式二可以解决这个问题,称为“个人公钥”。即上图,作用与仓库公钥大同小异,关于个人公钥大家可自行在官网查看。

  1. 两种公钥不相通,且互斥;
  2. 个人公钥管理此gitee账号旗下所有仓库,而仓库公钥仅管理配置此公钥的仓库。

说明一下:

  1. “不相通”指个人公钥与仓库公钥==不可相互转换==,如要迁移公钥,只能删除后再添加,而“不相通”的原因是两种公钥的权限不同,为了区分。“互斥”指个人公钥与仓库公钥==不能相同==;
  2. “管理旗下所有仓库”指只要将公钥添加进个人公钥,则这个gitee账号内的所有仓库都可操作,即身份验证一并通过;“仅管理配置此公钥的仓库”是因为当将公钥添加进仓库公钥时,其他仓库是可见的,只是状态为未部署。仓库只有成功部署公钥才能通过身份验证。也就是说,==添加进仓库公钥的公钥的身份验证作用仅对当前仓库有效==。

这两种连接方式非本文重心,故暂不探讨。

我们见过公钥和私钥最多的地方应该是非对称加密算法吧。在非对称加密算法中,公钥和私钥用于加密和解密的唯一凭据。

在Git中,公钥和私钥则用于ssh连接方式的身份验证。

创建命令:

 
  

上文说道,公钥和私钥是由某种加密算法将某个标识和计算机Mac地址等信息进行加密生成的。

  1. :rsa 是其中一种加密算法,比较常用的有:rsa、dsa、id25519;
  2. 后的数字是生成的公钥和私钥的长度,数值任意,但最好是的指数幂。注意,如果加密算法是dsa,则长度必须是1024,否则无法生成成功;
  3. 是一个字符串,对git操作无作用,仅是一个标识。公钥生成成功后,大家可能会在两个地方看到:(1)、公钥的结尾;(2)、gitee的个人公钥或仓库公钥的名字(当我们添加公钥未指定公钥名称时)。注意:这个标识与公钥并不绑定,故可任意;
  4. 后是公钥和私钥文件的保存位置,可以是绝对路径,如:;也可以是相对路径,如:(表示当前电脑账户的目录)。其中,是公钥和私钥文件名。注意:路径不要加引号。

总结:

在一台电脑、使用一种算法、指定一个标识,可创建无数个公钥和私钥。

大家可能觉得这个总结云里雾里,这么举例吧:另选一个长度、保存位置或文件名就可以成功创建一对公钥和私钥。大家尝试一下就知道了。

上述【公钥配置】中提到若要成功配置公钥,需要满足两个条件:

  1. 公钥和私钥文件必须在文件目录中;
  2. 公钥和私钥文件名必须以“”作为前缀。

为什么需要满足这两个条件?
因为当采用ssh连接方式连接gitee时,git默认扫描目录下、文件名以“”开头的私钥文件,并以其内私钥与gitee个人公钥或仓库公钥进行匹配。若匹配成功,则身份验证通过。

如何自定义扫描目录和文件?
方式一:命令配置。(仅在当前命令窗口有效)
在这里插入图片描述
方式二:TortoiseGit工具配置。(需要另行创建ppk公钥、私钥文件)
在这里插入图片描述
与类似,也是一种秘钥文件。因为命令创建的公钥文件后缀是,而ppk文件的创建是有点麻烦的。













先补充一点:

虽然git会默认识别相应目录下文件名前缀为“id”的私钥文件,可并不存在遍历机制。就是说,git不会将相应目录下所有文件名前缀为“id”的私钥文件逐个与gitee账号的个人公钥或仓库公钥进行匹配,我们必须==手动配置私钥文件==。

假设我有两个gitee账号A、B,现在我需要分别从A、B的仓库中各拉取一个项目,如何配置私钥文件?

尽管上文中的两种配置方式都存在不足,但皆可以解决这个问题。下文我介绍另一种私钥文件配置方式,也是本人一直在使用的。

 
  

这是我的一个gitee账号内的仓库note的ssh链接,其中的就是域名。“域名别名”就是为其设置一个别名。

 
  

这是修改后的ssh链接,“域名别名”是。

“域名别名”是什么意思?
Git无法自动遍历匹配公钥和私钥,故需要我们手动配置。因此config配置文件的作用是告诉Git,身份验证时应匹配哪个公钥文件。

的作用是联系ssh链接与配置条目。

我的config文件中有两个配置条目。

  • :原域名。
  • :验证方式,指公钥;
  • :验证文件,上例指公钥文件,可以是绝对路径或相对路径。
  • :用户名。

前4个配置必填,配置可有可无。若有,最好与gitee账号的用户名完全相同。

本文采用意识流,可能会给大家的阅读带来不便。其实大家只要稍作参考、自行测试一下,就完全明白了。

本文中的例子是为了方便大家理解和阐述知识点而简单举出的,旨在阐明知识点,并不一定有实用性,仅是抛砖引玉。

如果大家不了解Git、或者想要查找Git命令,可查阅博文《[Git]入门及其常用命令》。

本文完结。

到此这篇git clone 配置账号密码(git clone 加上账号密码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • apc和aps(apc和aps经济学)2025-08-10 21:45:06
  • cnnpo是哪个港口(cnxna是哪个港口)2025-08-10 21:45:06
  • cp1200怎么连接手机(cp1300怎么连接手机)2025-08-10 21:45:06
  • vconsole是什么意思怎样能删除(vconsole是什么意思怎么关闭)2025-08-10 21:45:06
  • can接口图片(can接口原理图)2025-08-10 21:45:06
  • pc与apc的区别(pc upc 和 apc 区别)2025-08-10 21:45:06
  • clothes怎么读(these怎么读)2025-08-10 21:45:06
  • cnnsh港口(cntxg 港口)2025-08-10 21:45:06
  • newcoder竞赛(codevita编程大赛)2025-08-10 21:45:06
  • 怎么样关闭dhcp(怎么样关闭抖音月付功能)2025-08-10 21:45:06
  • 全屏图片