在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,沒有錯誤,則大功告成~

相關文章
相關標籤/搜索