大家通过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 "[email protected]"
[email protected]
需要填写你再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 [email protected]
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 [email protected]
Hi 【你的用户名】! You've successfully authenticated, but GITEE.COM does not provide shell access.
最后就可以利用ssh的方式进行拉取和推送代码了。
标签:Git,方式,仓库,rsa,拉取,公玥,SSH,ssh From: https://blog.51cto.com/jtime/7502444更多精彩内容,请关注同名公众:一点sir(alittle-sir)