Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

2023年 9月 17日 87.1k 0

大家通过git拉取代码的时候,一般都是通过http的方式,简单方便。但是细心的童鞋肯定也注意到Git也是支持ssh方式的。可能很多人也试过使用这个方式,但是好像没有那么简单。那么什么是SSH呢?为啥要使用SSH方式呢?

HTTPS和SSH的区别

Git支持使用HTTPS和SSH两种方式与远程仓库进行通信和代码传输,它们在一些方面有所不同。

身份验证:HTTPS使用用户名和密码进行身份验证,而SSH使用公钥认证,通过生成公钥和私钥对来建立安全连接。

传输速度:SSH方式在数据传输时通常比HTTPS方式更快一些,因为SSH采用了压缩和多路复用等技术。

安全性:SSH方式相对于HTTPS方式更安全,因为SSH使用公钥和私钥进行身份验证,并通过加密的SSH隧道传输数据。

那么从这个区别我们就可以指定,选择使用SSH方式的一些原因包括:

安全性要求高:SSH使用密钥对进行身份验证和数据传输加密,提供了更高的安全性,适用于需要保护代码和传输数据的私密性的情况。

压缩与传输效率:SSH可以对数据进行压缩再传输,减少数据的传输量,从而提高传输效率。相比之下,HTTP方式在传输过程中不会进行压缩处理,可能导致传输时间更长。

方便的身份验证管理:使用SSH方式时,可以通过在本地计算机上配置SSH密钥对来进行身份验证,可在多个远程仓库上进行方便管理。

当然有些人说SSH方式不用频繁的输密码,但是HTTP方式也可以通过设置来实现,严格来说,这个并不能算是优势。

所以总的来说,SSH方式相对更安全,并且利用公钥和私钥来建立连接,提供了更高的身份验证和数据传输的保障。相比于HTTP方式,SSH方式通常具有更快的传输速度和更好的性能。

设置SSH方式

那么我们如何使用ssh方式来拉取、推送代码呢,下面以linux机器,gitee平台为例,详细介绍一下整个过程。
首先在自己的机器上面输入以下命令

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

your_email@example.com需要填写你再gitee或者github上提交代码的那个邮箱
然后到~/.ssh/目录下就可以看见两个文件。

id_rsa
id_rsa.pub

id_rsa是私玥,id_rsa.pub是公钥,公玥是填写再在服务器上的,如果是提交到gitee或者github上面的话,就需要就那上面去配置公玥,私玥是自己本地使用的。
复制出id_rsa的公玥内容,然后打开gitee网站。

我们可以对单个仓库或者整个账户进行配置。

如果对单个仓库进行配置的话,那么只能对单个仓库进行克隆,拉取代码,没有办法进行提交代码,也就是说只有读的权限,没有写的权限。

如果对整个账户进行配置的话,那么不仅可以对所有的仓库进行克隆、拉取代码,对所有的仓库也可以进行提交代码,不仅有读的权限也有写的权限。

配置单个仓库

如图所示,打开自己需要配置的仓库,打开右边的管理选项

点击右边的部署公玥管理,点击添加公玥
输入图片说明
打开添加部署公钥界面,公玥标题可以随便填,下方就填写公玥内容,就是上面在你自己机器上生成的id_rsa.pub文件里面的内容
输入图片说明
然后在你机器上,输入如下命令测试看看是否添加成功

[root@localhost note]# ssh -T git@gitee.com
Hi Anonymous (DeployKey)! You've successfully authenticated, but GITEE.COM does not provide shell access.
Note: Perhaps the current use is DeployKey.
Note: DeployKey only supports pull/fetch operations

输入图片说明

配置账户公钥

以上对仓库添加公玥只能实现对仓库的读惭怍,如果您想要对仓库进行写操作,就需要添加个人公钥,也可以叫账户公玥。鼠标移到右上角自己的账户上,选择其中的设置按钮。
输入图片说明
打开设置界面,选择安全设置下的SSH公玥
输入图片说明
和配置仓库公玥一样,公玥标题可以随便填,公玥内容,就是填写上面在你自己机器上生成的id_rsa.pub文件里面的内容
输入图片说明
然后在你机器上,输入如下命令测试看看是否添加成功,这里输出的内容和上方不同,账户公玥输出的是自己的用户名

[root@localhost note]# ssh -T git@gitee.com
Hi 【你的用户名】! You've successfully authenticated, but GITEE.COM does not provide shell access.

输入图片说明

最后就可以利用ssh的方式进行拉取和推送代码了。

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论