Git有四种主要的协议来传输资料:1)本地协议(Local);2)HTTP协议;3)SSH(Secure Shell)协议;4)Git协议;其中,本地协议由于目前大都是进行远程开发和共享代码所以一般不常用,而Git协议由于缺乏授权机制且较难架设所以也不常用。最常用的便是SSH和HTTP(S)协议。
HTTP(S)优缺点
优点一:相对于SSH协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不需要在使用Git之前先在本地生成SSH密钥对再把公钥上传到服务器。对非资深的使用者,或者系统上缺少SSH相关程序的使用者,HTTP协议的可用性是主要的优势。
优点二:企业防火墙一般会打开80和443这两个常见的http和https协议端口,使用http和https协议在架设了防火墙的企业里面就可以绕过安全限制正常使用Git,非常方便。
缺点:使用http/https协议除了速度慢之外,还有个最大的麻烦就是每次推送都必须输入口令。但是好在现在的操作系统或者其他的Git工具都提供了keychain的功能,可以把你的账户密码记录在系统里,例如OSX的Keychain或Windows的凭证管理器。
SSH的优缺点
优点一:SSH协议是一个验证授权的网络协议,其具有普遍性,架设和使用都很容易。
缺点一:SSH服务端一般使用22端口,企业防火墙可能没有打开这个端口。
缺点二:SSH 协议的缺点在于你不能通过它实现匿名访问。即便只要读取数据,使用者也要有通过SSH访问你的主机的权限,这使得SSH协议不利于开源的项目。如果你只在公司网络使用,SSH 协议可能是你唯一要用到的协议。如果你还要提供匿名只读访问的功能,那么你除了为自己推送架设SSH服务以外,还得架设一个可以让其他人访问的服务。
总结
HTTPS利于匿名访问,适合开源项目,可以方便被别人克隆和读取(但他没有push权限);毕竟为了克隆别人一个仓库学习一下你就要生成个ssh-key折腾一番还是比较麻烦,所以github除了支持ssh协议必然还提供了https协议的支持。而SSH协议使用公钥认证比较适合内部项目。当然了,现在的代码管理平台例如github、gitlab,两种协议都是支持的,基本上看自己喜好和需求来选择就可以了。
标签:协议,Git,HTTP,传输,SSH,https,对比,架设 From: https://www.cnblogs.com/bobbycheng/p/18070189