git中使用https和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操作。