在git與tortoisegit中使用openSSH與PuTTY(轉載)
問題
在使用Git與tortoisegit的時候,指定遠端版本庫的地址有2種方式:
- 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什麼都不需要配置,不管是git bash還是tortoisegit都能完美使用,但是每次需要連線遠端伺服器時,都要提示我輸入使用者名稱與密碼,非常不爽;
- 使用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個小傢伙都不輸入密碼呢?
這裡又有兩種辦法…
- 調整tortoisegit的settings中的network選項,將tortoisegitplink.exe改成git安裝目錄的下bin\ssh.exe。如果先前用ssh-keygen.exe配置好了git下的ssh話,改完就能直接用,沒配置好的話…等下說。
- 預設安裝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,沒有錯誤,則大功告成~
相關推薦
在git與tortoisegit中使用openSSH與PuTTY(轉載)
問題 在使用Git與tortoisegit的時候,指定遠端版本庫的地址有2種方式: 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什麼都不需要配置,不管是git bash還是tortoisegit都能完美使用,但是每次需要連線遠端伺服器時
python2與python3中編碼與解碼的區別
需要 顯示 數據類型 在屏幕上 nbsp gb2312 python2 想要 區別 python2中程序默認數據類型為ASCII, 所以需要先將數據解碼(decode)成為Unicode類型, 然後再編碼(encode)成為想要轉換的數據類型(gbk,utf-8,gb180
Swift與OC中拷貝與可變性總結
為了解釋方便,定義兩個類:Person和MyObject,它們都繼承自NSObject。他們的關係如下: // Person.h @property (strong, nonatomic, nullable) MyObject *object; // MyObjec.h @property (copy,
Mockito與Spring中@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. Git與TortoiseGit基本操作
1. GitHub操作 本節先簡單介紹 git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於有一
Android studio中Git的學習和使用心得(二)在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. 遠端庫與本地庫 很多人對這兩個東西搞到腦瓜疼。簡單來
git中ssh與https究竟有何不同
區別 1.clone專案:使用ssh方式時,需要配置個人的ssh key,並將生成的ssh公鑰配置到git伺服器中。下面會談到如何生成並設定你的ssh key。而對於使用https方式來講,就沒有這些要求。 2.push:在使用ssh方式時,是不需要驗證使用
開發環境配置-eclipse中git的安裝、配置與使用-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版本。 升級
freemarker中include與import的區別 轉載至https://blog.csdn.net/mexican_jacky/article/details/50637849
問題顯示: 在inc1.ftl與inc2.ftl中的內容分別是: <#assign username="劉德華">與<#assign username="張學友"> 接著我在hello.ftl模版中用incl
關於socket與serversocket中的輸入輸出流【轉載】
關於socket與serversocket中的輸入輸出流 1,客戶端的socket連線到伺服器的套接字 socket mysocket=new socket(“127.0.0.1”,30000);用埠號30000連線到本機,當然這裡可能發生io異常,注意拋異常 當套
淺談HTTP中Get與Post的區別,轉載
接觸GET/POST已經有段時日了,但對其中區別以及較深度的理解還是模凌兩可,今天在網上查閱相關資料,發現一篇另自己恍然大悟的文章,供自己學習和大家參考。 Http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是
Git、Github、TortoiseGit 的關係與具體操作
Git是客戶端,TortoiseGit是視覺化操作工具,Github是遠端倉庫伺服器 本地倉庫:本地檔案系統 遠端倉庫:Github伺服器 一、最常用操作: 1、pull:其實是fetch與Merge兩個命令的合併:把遠端倉庫的更新同步到本地倉庫。 2、commit and