最近在学习Git,每次pull/push都要提示输入密码,比较烦。而且由于网络速率比较慢,等好一段时间才能输密码。为了避免输入密码,折腾了好久。
    
原理
   TortoiseGit基于putty的ssh实现密钥认证。

1、git服务器配置
1.1 切换到git,在git用户下操作,避免后期权限更改
 
     
  1. su - git
1.2 生成密钥
 
     
  1. ssh-keygen -t rsa
生成公钥和私钥
wKiom1hy8NHAEQlEAAAMRDcfikM247.png
1.3 将公钥加进authorized_keys
 
     
  1. cat id_rsa.pub >> authorized_keys
  2. chmod 600 authorized_keys
如果你使用的GitHub,登录到github,点击右上方的Accounting settings,选择SSH key,点击Add SSH key,把id_rsa.pub中的内容复制过去就可以了。

2 客户端配置
因为TortoiseGit使用的密钥与git并不一样,它使用的是putty。要使用刚才生成的密钥,需要进行转换。
2.1 下载私钥
 
     
  1. sz id_rsa
2.2 重新生成私钥
打开“puttygen.exe“,点击”load“,选择刚才上次的私钥文件id_rsa,然后”save private key“保存成ppk文件。
2.3 git clone时指定私钥
wKiom1hy8NHTetTVAACnXf4L7ZU449.png

至此,大功告成。