原来在使用svn时一般工具都有个记住密码的选项。但现在使用git,居然没找到,在网上查了下,可能是因为原理不大一样,需要使用类似oauth的方法。
简单来说就是需要做一对证书,通过公、私证书来验证用户。
1.生成证书
随便找个文件夹,右击,git extensions-》Browse
弹出git工具界面,点git-》git bash 命令行
运行
ssh-keygen -t rsa -C "[email protected]"
把email换成你git server注册时的email
在这里,我把生成的证书文件保存到c:/
2.证书转换
生成的证书是open-ssh的,需要转换成putty的
打开git extension-》远程-》putty-》生成或者导入key
选择file-》load privatekey,然后选择刚刚生成的文件git(没有扩展名的)
会弹出个提示,意思是这是open-ssh生成的证书,需要save下转换成putty能用的
确定后,点save privatekey,生成gitkey.ppk, 这就是客户端需要的私钥证书
2.上传public证书
上传public证书是为了告诉git server如何验证客户端。
我用的是git enterprise,登录git enterprise后,选择my profiles->public keys,复制粘贴前面生成的git.pub
4,配置git extensions的私钥
找一个你打算放源代码的文件夹,右击,选择git extensions-》clone
”要克隆的档案库“输入git库的ssh地址
其他也根据需要设置
点”加载ssh密钥“选择前面生成的git.ppk
点”克隆“
这时出现一个提示
这是因为在首次连接 SSH 服务器时要对其公钥进行确认,而运行于 Git 下的 plink.exe 没有机会从用户那里获取输入,以建立对该SSH服务器公钥的信任,因此 Git 访问失败。解决办法非常简单,直接运行plink.exe连接一次远程 SSH 服务器,并对公钥确认进行应答即可。
运行cmd
plink ***@gitent-scm.com
plink,一般在c:\Program Files (x86)\GitExtensions\PuTTY\plink.exe,***@gitent-scm.com我这是git enterprise的地址,根据需要替换,***是你的git用户名.
后面会提示
Store key in cache? (y/n)
输入“y”,将公钥保存在信任链中,以后再和该主机连接时就不会弹出该确认应答了。当然,Git 命令也就可以成功执行了。
ok,这时就可以进行clone,pull, push等git操作了