公司的版本服务器使用了GIT,每次pull/push都要提示输入密码,比较烦。而且由于网络速率比较慢,等好一段时间才能输密码。为了避免输入密码,折腾了好久。
Git客户端使用的软件如下:
Git-1.9.2-preview20140411.exe
TortoiseGit-1.8.8.0-64bit.msi
1. Git配置
连接GIT服务器使用的是SSH连接,因此无密码登录,需要使用公钥和私钥。
1) 生成公钥/私钥
在Git Shell中输入ssh-keygen命令,直接回车使用默认路径和文件名,然后提示输入密码的时候,直接回车。
我之所以折腾了好久,就是因为没有使用默认的文件名,导致GIT找不到私钥文件。
2) 发布公钥
将生成的id_rsa.pub,添加到服务器的.ssh/authorized_keys中。
可以使用ftp/scp等方式把文件传到服务器上,然后执行:
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
注意:要确保authorized_keys的权限是600,如果权限不对,有的SSH服务器会不认这个文件。
如果你使用的GitHub,登录到github,点击右上方的Accounting settings,选择SSH key,点击Add SSH key,把id_rsa.pub中的内容复制过去就可以了。
2. TortoiseGit配置
至此,git已经可以实现免密码登录了。但是使用TortoiseGit时,还是会提示输入密码,因为TortoiseGit使用的密钥与git并不一样,它使用的是putty。要使用刚才生成的密钥,需要进行转换。
1) 生成公钥/私钥
打开“puttygen.exe“,点击”load“,选择刚才上次的私钥文件id_rsa,然后”save private key“保存成ppk文件。
2) 指定使用的私钥
在TortoiseGit的Settings中,指定Putty Key为上一步生成的ppk文件。
这样,TortoiseGit就可以实现免密码登录了。