Git常用协议-SSH
我们常用的GIT远程仓库协议有:
– Git协议:为自带的网络协议,它适用于不需要对读进行授权的大型项目
• 优点:传输速度最快
• 缺点:授权机制不灵活,要么不能推送,要么都能推送
– HTTP/HTTPS协议
• 优点:容易架设,适用于提供只读的仓库、防火墙穿透强
• 缺点:传输速度慢、开销大
– SSH协议 :同时支持读和写的网络协议,Git默认使用的网络协议
• 优点:安全性高,数据传输都是加密和授权的
• 缺点:不能匿名访问,读也要授权,不利于开源的项目
下面通过配置SSH公钥来解决push本地仓库到远程服务器总是需要输入用户名和密码的问题
1、配置ssh格式的远程仓库地址 :将需要用到的远程仓库地址,如ssh地址,配置成一个简单的远程仓库名,如origin,可通过如下命令实现 :
git remote add 远程仓库名(一般为origin) 远程仓库ssh地址
2、创建SSH key
ssh-keygen -t rsa –C “邮箱地址”。其中邮箱地址就是我们配置Git时所使用的邮箱(通过git config –list便可以看到git的配置信息),一直回车不用输入密码,完成后可以在用户主目录找到.ssh文件夹,内有id-rsa(私钥)和id-rsa-pub(公钥)二个文件,这二把钥匙是成对的,可以让分别持有公钥和私钥的双方相互认识
3、将公钥放入远程服务器
用记事本打开公钥复制公钥内容,然后登陆远程将内容填入并保存(注意填入时不能有回车和空格)。
4、验证
如 :执行 git push origin mater
可以发现不需要再输入用户名和密码了
由以上分析便不难想到:多台电脑push本地仓库到远端时可以分别在多台电脑上生成多对密钥 ,然后将公钥分别添加到服务器上即可。
注意 :一个账户可以添加多个pub key,一个pub key只能 添加到一个账户上