谈谈HTTPS和SSH

简介

git可以使用四种主要的协议来传输资料: 本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 git 协议。其中,本地协议由于目前大都是进行远程开发和共享代码所以一般不常用,而git协议由于缺乏授权机制且较难架设所以也不常用。

最常用的便是SSH和HTTP(S)协议。git关联远程仓库可以使用http协议或者ssh协议。

【优缺点比较】

ssh:

一般使用22端口;
通过先在本地生成SSH密钥对再把公钥上传到服务器;
速度相较慢点

https:

一般使用443端口;
通过用户名/密码授权,可用性比较高;
速度相较快点
一般企业防火墙会打开80和443这两个http/https协议的端口,因此在架设了企业防火墙的时候使用http就可以很好的绕开安全限制使用git了,很方便;而对于ssh来说,企业防火墙很可能没打开22端口。

【使用区别】

clone项目:

使用ssh方式时,需要配置ssh key,即要将生成的SSH密钥对的公钥上传至服务器;

使用http方式时,没有要求,可以直接克隆下来。

push项目:

使用ssh方式时,不需要验证用户名和密码,之前配置过ssh key,(如果你没设置密码)直接push即可;

使用http方式时,需要验证用户名和密码。

总结

HTTPS利于匿名访问,适合开源项目,可以方便被别人克隆和读取(但没有push权限);

SSH不利于匿名访问,比较适合内部项目,只要配置了SSH公钥极可自由实现clone和push操作。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: git clone httpsssh 的区别在于传输协议不同。https 使用的是加密的 HTTP 协议,而 ssh 使用的是加密的 SSH 协议。在使用 https 时需要输入用户名和密码进行身份验证,而使用 ssh 时需要设置公钥和私钥进行身份验证。另外,使用 ssh 可以更方便地进行代码的推送和拉取,而使用 https 则需要输入用户名和密码。 ### 回答2: Git是一种版本控制工具,可以帮助开发者管理代码、协作开发等。在使用Git时,需要通过clone命令将代码库克隆到本地,以便进行代码的修改和提交。 在clone命令中,有两种常用的协议类型:HTTPSSSH。它们在使用上有一些不同之处,下面将详细介绍这两种协议之间的区别。 1. HTTPS协议 HTTPS协议是一种基于SSL/TLS加密的安全协议。它使用HTTP协议进行通信,但是通过SSL/TLS加密数据,防止数据被窃听或篡改。使用HTTPS协议进行Git操作需要使用用户名和密码进行身份验证。 使用HTTPS协议进行clone操作的命令为: ``` git clone https://github.com/username/repo.git ``` 其中,`username`是你的GitHub用户名,`repo`是你要克隆的代码库的名称。 2. SSH协议 SSH协议是一种加密的网络协议,可以通过加密传输数据,保证数据的安全性和完整性。使用SSH协议进行Git操作时,需要先生成SSH密钥,然后将公钥上传到GitHub上。之后,在进行Git操作时,使用ssh://协议头,并使用SSH密钥进行身份验证。 使用SSH协议进行clone操作的命令为: ``` git clone git@github.com:username/repo.git ``` 其中,`username`是你的GitHub用户名,`repo`是你要克隆的代码库的名称。 3. 区别 HTTPS协议与SSH协议之间的主要区别在于: - 安全性:SSH协议比HTTPS协议更强的安全性,因为SSH协议使用了公钥加密和私钥解密的方式进行身份验证,而且数据传输也是加密的。 - 认证方式:使用HTTPS协议需要输入密码来进行身份验证,而SSH协议则是使用SSH密钥对进行身份验证,无需输入密码。 - 速度:HTTPS协议通常比SSH协议速度更慢,因为所有数据都需要进行加密和解密,而SSH协议则无需进行加密和解密。 - 使用方便性:HTTPS协议使用方便,因为不需要生成SSH密钥对,但是SSH协议需要先生成SSH密钥对,并将公钥上传到GitHub上,在使用时还需要配置一下身份验证方式。 综上所述,HTTPS协议与SSH协议各有优缺点,使用哪种协议取决于具体的情况。如果对数据安全性要求比较高,建议使用SSH协议;如果对速度和方便性要求比较高,建议使用HTTPS协议。 ### 回答3: Git是一款开源的版本控制软件,它的使用方式非常灵活,可以通过不同的协议来访问Git仓库。其中,最常用的协议是HTTPSSSHHTTPS协议是一种基于HTTP协议的安全传输协议,在Git中使用HTTPS协议可以通过HTTPS链接克隆远程仓库到本地,使用方式为: ``` git clone https://github.com/username/repo.git ``` HTTPS协议的优点是简单易用,只需要输入用户名和密码即可完成鉴权操作。同时,在网络环境中,HTTPS协议的稳定性也相对较高,不易受到网络攻击的影响,因此适合在公共网络中使用。 然而,HTTPS协议也存在缺点。首先,在使用HTTPS协议时,每次操作都需要输入用户名和密码进行鉴权,繁琐且不利于脚本化操作。其次,HTTPS协议在传输文件时需要加密操作,会对系统性能造成一定的影响。 相比之下,SSH协议则是一种基于Secure Shell协议的安全传输协议,使用SSH协议可以通过SSH链接克隆远程仓库到本地,使用方式为: ``` git clone git@github.com:username/repo.git ``` SSH协议的优点是可以提供高度的安全性,并且在传输数据时不需要进行加密操作,因此相对于HTTPS协议更具有高效性。同时,SSH协议也支持公私钥认证方式,可以避免在每次操作时进行用户名和密码的鉴权,更加方便实用。 但是,使用SSH协议在网络环境较差的情况下容易出现连接中断等问题,也需要一定的配置和管理工作,因此相对于HTTPS协议而言更加复杂。 综上所述,Git中的HTTPSSSH协议各有优劣,需要根据具体的应用场景和需求进行选择。对于只用于个人开发或小团队协同开发的项目,使用HTTPS协议已经足够;而对于大型项目或者需要高度安全性的项目,SSH协议则更为合适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值