在git与tortoisegit中使用openSSH与PuTTY

问题

在使用Git与tortoisegit的时候,指定远程版本库的地址有2种方式:git

  1. 使用https方式的git地址很是直接(https://xxx.oschina.net/xxx.git),基本上什么都不须要配置,无论是git bash仍是tortoisegit都能完美使用,可是每次须要链接远程服务器时,都要提示我输入用户名与密码,很是不爽;
  2. 使用ssh方式的git地址很是爽快(git@git.oschina.net:xxxx/xxx.git),不须要输入密码,可是须要配置。

第一种方式没啥说的,第二种方式的应用,我配置的时候出现了一个问题:windows

配置了tortoisegit的putty后,直接用tortoisegit能够不输入密码直接完成操做;可是当我使用git bash的时候,使用git pull之类的命令还须要我输入密码...bash

P.S. 别说我闲的,有tortoisegit为啥还用git bash。实际上,使用git bash在有的操做上仍是挺方便的(好比删除分支 git push origin :branchx)。服务器

 

那怎么弄才能让这2个小家伙都不输入密码呢?ssh

这里又有两种办法...测试

  1. 调整tortoisegit的settings中的network选项,将tortoisegitplink.exe改为git安装目录的下bin\ssh.exe。若是先前用ssh-keygen.exe配置好了git下的ssh话,改完就能直接用,没配置好的话...等下说。
  2. 默认安装tortoisegit,会使用PuTTY(plink)做为默认的ssh方式,声称对windows集成更好,若是不想改这种方式的话,就只能让git的ssh.exe使用PuTTY的密钥了,tortoisegit继续使用PuTTY。

注意:tortoisegit能够自动载入putty key,使用puttygen程序能够生成对应的公钥与私钥。网站

 

解决方法

我先前已经配置好了PuTTY,只是bash中的openssh不能用,因而我采用第二种方式。公钥是相同的,须要转换一下私钥。url

定位putty的ppk文件,用puttygen(在tortoisegit目录里面)打开(conversions>import key)spa

而后点击conversions>export openSSH key,保存文件为id_rsa文件,不要拓展名。.net

而后再点击下面的save public key按钮,保存为id_rsa.pub文件,效果以下:

找到本身%home%下(~)的.ssh文件夹,通常windows 7之后的在c:\用户\“本身的用户名”下面。没有的话,能够新建。

把刚才的两个文件扔进去。打开git bash,执行命令,以下图。

跳转到本身的版本路径,执行git pull,命令行不再提示密码了...再试试tortoisegit,依然也不提示要密码。

这样实际至关于配置了一回git的ssh,让openSSH与putty使用相同的密钥,git bash使用openssh链接,而tortoisegit使用PuTTY链接,谁也不碍着谁。

 

实践指南

依据本身的喜爱,为了避免重复输入用户名与密码,能够选择兼用PuTTY与OpenSSH或者只用openSSH

*兼用openSSH与PuTTY*

1.配置tortoisegit的PuTTY:http://my.oschina.net/longxuu/blog/141699

2.确认tortoisegit能够正常使用PuTTY,能够按照上面解决方法的步骤配置openSSH以供git bash使用。

 

*只用openSSH*

1.使用git bash,输入ssh-keygen.exe –t rsa –C “本身的email”

2.若是不想输密码的话,一路回车,程序会自动生成.ssh/下面的id_rsa和对应的pub文件

3.打开id_rsa.pub文件,将内容所有复制

4.在版本控制的网站(例如oschina),在我的资料里面,SSH公钥,新添一个公钥,将刚刚的东西贴进去。

5.能够参照http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9#ssh-keys进行验证

6.调整tortoisegit的settings中的network选项,将tortoisegitplink.exe改为git安装目录的下bin\ssh.exe。

7.在对应项目的文件夹上右键,点击tortoisegit下的settings,定位到remote

8.修改对应的url为SSH地址,putty key定位到id_rsa文件,以下图

9.测试tortoisegit,没有错误,则大功告成~

相关文章
相关标签/搜索