
@TOC
外观上区别?
ssh协议的: git@gitlab:hustle/backend/bigdata/bd-api.git
http协议的: http://gitlab/hustle/backend/bigdata/bd-api.git
HTTP协议(新,GitHub目前就使用了这种协议):支持读写模式。既可以像git://协议一样设置匿名服务,又可以像SSH一样提供传输时的授权和加密,而且只用一个URL就可以得到git://和SSH的功能,省去了为不同的需求设置不同的URL。 HTTP协议推送(push)以及拉取(pull),服务器都会询问你的用户名和密码。
HTTP协议的优点: 不同的访问方式只需要一个URL,服务器只在需要授权时提示输入授权信息。
相对于SSH而言,不需要生成SSH秘钥对再把秘钥上传到服务器上。
HTTP/S被广泛采用,一般的企业防火墙都会允许这些端口的数据通过。
缺点: 在一些服务器上,架设HTTP/S协议会比SSH协议棘手一些;每次需要输入用户名和密码,管理这些凭证会比较麻烦一些(当然你可以使用凭证存储工具,keychain(OSX))。
除此之外没有别的缺点。
SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
从客户端来看,有两种验证方式:基于密码、基于密钥


说明:
(1) 首先在客户端生成一对密钥(公钥、私钥);
(2) 客户端将生成的公钥拷贝到需要访问的服务端机器上;
(3) 当客户端再次发送一个连接请求,包括 ip、用户名;
(4) 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有相应的 IP 和用户,就会随机生成一个字符串,例如:qwer;
(5) 服务端将使用客户端拷贝过来的公钥对随机字符串 qwer 进行加密,然后发送给客户端;
(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。