github 代理(github 代理配置和ssh的区别)

github 代理(github 代理配置和ssh的区别)版权声明 未经博主同意 谢绝转载 请尊重原创 博主保留追究权 https developer aliyun com article 出自 进步 于辰的博客 参考笔记三 P16 git 的连接方式分为四种 ssh 连接 HTTPS 连接 SVN 连接和 SVN ssh 连接 在首次连接 gitee 仓库时 会弹出如下窗口 用户名 密码就是 gitee 账号的用户名

大家好,我是讯享网,很高兴认识大家。



【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://developer.aliyun.com/article/
出自【进步*于辰的博客】

参考笔记三,P16。

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

在这里插入图片描述
讯享网

在首次连接gitee仓库时,会弹出如下窗口:
在这里插入图片描述
用户名、密码就是gitee账号的用户名、密码,正确即可连接成功。前提是,此gitee账号必须是相应仓库的仓库成员。并且,若后续需要进行提交等操作,要求成员权限在开发者及以上。(关于gitee的使用,大家可自行去网站学习 → gitee官网)
在这里插入图片描述

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

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

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

因此,连接 B 时进行身份验证使用的还是之前连接 A 时保存的gitee账号,这样必然验证失败。故需要先将凭据管理器中保存的gitee账号删除:
在这里插入图片描述

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

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

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

第3个不足,的确,若是想要新成员能操作另一个项目,则同样要把其gitee账号添加进仓库成员,而且是每个仓库都要添加一次。
在这里插入图片描述
仓库邀请新成员时可从其他仓库选择添加。不用再输入一遍新gitee账号,这也是一个便利吧。

在这里插入图片描述

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

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

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

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

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

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

1、公钥和私钥文件必须在下图文件目录中。
在这里插入图片描述
2、公钥和私钥文件名必须以“”作为前缀,如:。
在这里插入图片描述
图中红框内,后缀是的文件是公钥文件,无后缀的是私钥文件。为什么我的公钥文件不是以作为前缀?后续说明。

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、公钥、私钥文件。
在这里插入图片描述
3、查看公钥、私钥文件。
在这里插入图片描述
在这里插入图片描述
最后,将公钥复制,按照上述公钥配置方法,将公钥添加进个人公钥或仓库公钥即可,ssh连接方式配置完成。

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

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

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

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

先补充一点:

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

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

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

文件位置:
在这里插入图片描述
图中的 config 文件就是公钥配置文件,这个文件无后缀。

下图是其内容。
在这里插入图片描述
这是我目前正在使用的配置,下面我一一进行说明。

  • :域名别名。
讯享网

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

 

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

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

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

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

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

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

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

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

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

本文完结。

小讯
上一篇 2025-04-16 07:46
下一篇 2025-06-05 20:07

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/152743.html