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只能 添加到一个账户上

猜你喜欢

转载自www.cnblogs.com/zhangshuaifeng/p/10130812.html