1. 程式人生 > >在git與tortoisegit中使用openSSH與PuTTY(轉載)

在git與tortoisegit中使用openSSH與PuTTY(轉載)

問題

在使用Git與tortoisegit的時候,指定遠端版本庫的地址有2種方式:

  1. 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什麼都不需要配置,不管是git bash還是tortoisegit都能完美使用,但是每次需要連線遠端伺服器時,都要提示我輸入使用者名稱與密碼,非常不爽;
  2. 使用ssh方式的git地址非常爽快([email protected]:xxxx/xxx.git),不需要輸入密碼,但是需要配置。

第一種方式沒啥說的,第二種方式的應用,我配置的時候出現了一個問題:

配置了tortoisegit的putty後,直接用tortoisegit可以不輸入密碼直接完成操作;但是當我使用git bash的時候,使用git pull之類的命令還需要我輸入密碼…

P.S. 別說我閒的,有tortoisegit為啥還用git bash。實際上,使用git bash在有的操作上還是挺方便的(比如刪除分支 git push origin :branchx)。

那怎麼弄才能讓這2個小傢伙都不輸入密碼呢?

這裡又有兩種辦法…

  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不能用,於是我採用第二種方式。公鑰是相同的,需要轉換一下私鑰。

定位putty的ppk檔案,用puttygen(在tortoisegit目錄裡面)開啟(conversions>import key)

然後點選conversions>export openSSH key,儲存檔案為id_rsa檔案,不要拓展名。

然後再點選下面的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*

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公鑰,新添一個公鑰,將剛剛的東西貼進去。

6.調整tortoisegit的settings中的network選項,將tortoisegitplink.exe改成git安裝目錄的下bin\ssh.exe。

7.在對應專案的資料夾上右鍵,點選tortoisegit下的settings,定位到remote

8.修改對應的url為SSH地址,putty key定位到id_rsa檔案,如下圖

9.測試tortoisegit,沒有錯誤,則大功告成~

相關推薦

gittortoisegit使用openSSHPuTTY(轉載)

問題 在使用Git與tortoisegit的時候,指定遠端版本庫的地址有2種方式: 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什麼都不需要配置,不管是git bash還是tortoisegit都能完美使用,但是每次需要連線遠端伺服器時

python2python3編碼解碼的區別

需要 顯示 數據類型 在屏幕上 nbsp gb2312 python2 想要 區別 python2中程序默認數據類型為ASCII, 所以需要先將數據解碼(decode)成為Unicode類型, 然後再編碼(encode)成為想要轉換的數據類型(gbk,utf-8,gb180

SwiftOC拷貝可變性總結

為了解釋方便,定義兩個類:Person和MyObject,它們都繼承自NSObject。他們的關係如下: // Person.h @property (strong, nonatomic, nullable) MyObject *object; // MyObjec.h @property (copy,

MockitoSpring@Autowired@InjectMocks組合

@InjectMocks @Autowired private TestClass testClass; @Mock private TestClassPropert

jQuery$(function(){})(function($){})(jQuery)、$(document).ready(function(){})等的區別詳細講解 ----轉載

最大 閉包 param 作用 alt dsm tracking 參數 bsp 1、(function($) {…})(jQuery); 1)、原理: 這實際上是匿名函數,如下: function(arg){…} 這就定義了一個匿名函數,參數為arg 而調用函數時,是在

JavaScript在頁面的執行順序(理解聲明式函數賦值式函數) 轉載

AD TE 我們 行動 first FN 順序 而且 編譯性語言 JavaScript在頁面中的執行順序 https://blog.csdn.net/superhoy/article/details/52946277 2016年10月27日 15:38:52 閱讀數:

轉載】 for迴圈i++++i的效率探究

原文連結:https://blog.csdn.net/zy1691/article/details/4849808?utm_source=blogxgwz1 for(int i=0;i<=50;i++)   我們經常會使用這樣的程式碼來做迴圈,一般在for迴圈中習慣於

3. GitTortoiseGit基本操作

1. GitHub操作 本節先簡單介紹 git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於有一

Android studioGit的學習和使用心得(二)在Android studio如何使用Git進行程式碼回退再提交

這篇部落格是上篇部落格的進階,針對Android studio常用的Git使用情景進行總結。上篇部落格連結https://blog.csdn.net/qq_34820468/article/details/83416326。 下面我們來學習Android stu

(轉載)python 類 __call____init__

轉載自: https://blog.csdn.net/u011510825/article/details/79770303 請去檢視原文。         最近看到專案中有人用了__call__,google了學習一下 __i

Git-團隊開放的程式碼同步提交

最近工作的需要,經常出沒於大大小小的專案團隊當中,他們在專案版本管理工具方面,一直都離不開SVN。但為跟上時代的步伐,很多專案團隊都開始轉向使用Git,但很多人反映git很難用,甚至花了大量的時間在同步程式碼和提交程式碼。所以我在這裡總結了幾點。 1. 遠端庫與本地庫 很多人對這兩個東西搞到腦瓜疼。簡單來

gitsshhttps究竟有何不同

區別 1.clone專案:使用ssh方式時,需要配置個人的ssh key,並將生成的ssh公鑰配置到git伺服器中。下面會談到如何生成並設定你的ssh key。而對於使用https方式來講,就沒有這些要求。 2.push:在使用ssh方式時,是不需要驗證使用

開發環境配置-eclipsegit的安裝、配置使用-4

1、eclipse自帶git,如果需要替換可先刪除,然後通過以下兩種操作方式中的一種進項安裝: Help->Eclipse MarketPlace->輸入egit進行查詢和安裝 Help->Install New SoftWare->

[轉載]Java過載重寫的區別

首先我們來講講:過載(Overloading)     (1) 方法過載是讓類以統一的方式處理不同型別資料的一種手段。多個同名函式同時存在,具有不同的引數個數/型別。 過載Overloading是一個類中多型性的一種表現。     (2) Java的方法過載,就是

git本地遠端庫的關聯取消

1.在本地目錄下關聯遠端repository : git remote add origin [email protected]:git_username/repository_name.git 2.取消本地目錄下關聯的遠端庫: git remote remov

在Centos 6.4安裝配置Git

本文章來自【知識林】 安裝 yum install git 安裝完成後此版本為1.7.1屬於相對較老的版本(如果作業系統的版本相對較高時,git的版本也會較高),對於github、Jenkins等服務都支援不好,所以需要升級git版本。 升級

freemarkerincludeimport的區別 轉載至https://blog.csdn.net/mexican_jacky/article/details/50637849

問題顯示:   在inc1.ftl與inc2.ftl中的內容分別是: <#assign username="劉德華">與<#assign username="張學友"> 接著我在hello.ftl模版中用incl

關於socketserversocket的輸入輸出流【轉載

關於socket與serversocket中的輸入輸出流 1,客戶端的socket連線到伺服器的套接字 socket mysocket=new socket(“127.0.0.1”,30000);用埠號30000連線到本機,當然這裡可能發生io異常,注意拋異常 當套

淺談HTTPGetPost的區別,轉載

接觸GET/POST已經有段時日了,但對其中區別以及較深度的理解還是模凌兩可,今天在網上查閱相關資料,發現一篇另自己恍然大悟的文章,供自己學習和大家參考。 Http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是

Git、Github、TortoiseGit 的關係具體操作

Git是客戶端,TortoiseGit是視覺化操作工具,Github是遠端倉庫伺服器 本地倉庫:本地檔案系統 遠端倉庫:Github伺服器 一、最常用操作: 1、pull:其實是fetch與Merge兩個命令的合併:把遠端倉庫的更新同步到本地倉庫。 2、commit and