2012-03-26 76 views
5

爲基本問題提前道歉 - 我是git的新手,並確信我錯過了一件超級簡單的事情,有人可以很快回答。配置msysgit使用putty/plink

在msysgit安裝過程中,我指定我想用PLink代替OpenSSH作爲我的安全shell客戶端程序。環境變量'GIT_SSH'被設置爲'C:\ Program Files(x86)\ PuTTY \ plink.exe',這是plink的正確路徑。我試過,沒有引號。 bash提示符中的「echo $ GIT_SSH」顯示環境變量的正確值。我也可以通過SSH使用putty連接到github,沒有任何問題。我開了一個新的git bash窗口並試圖連接到github(github已經有了我的公鑰並且設置正確 - 我使用jquery項目作爲快速測試) 。儘管指定我想使用PLink並且顯然設置了正確的環境變量,但msysgit仍在嘗試使用〜/ .ssh目錄中的密鑰文件。

我已經證實這實際上是將我的私鑰放在該目錄中,並且一切正常(我能夠克隆jquery存儲庫並沒有任何問題),但是我真的很希望這樣設置如果可能的話,我可以通過膩子來管理我的私鑰。

不知道我錯過了什麼。任何幫助非常感謝 - 提前致謝!

回答

6

我有類似的問題,解決方案是你必須使用'plink'而不是'ssh'。

所以下面的命令(從bash提示符)應爲你工作(假設你已經設置一個GitHub SSH key):

$ echo $GIT_SSH 
C:\Program Files (x86)\PuTTY\plink.exe 

$ "$GIT_SSH" -V 
plink: Release 0.62 

$ "$GIT_SSH" -ssh [email protected] 
Using username "git". 
Server refused to allocate pty 
Hi [your-github-username]! You've successfully authenticated, but GitHub does not provide s 
hell access. 

如果你只是運行"$GIT_SSH"那麼它會打印出的參數,你可以使用。 -ssh命令強制PuTTY使用ssh協議。

如果你有在PATH C:\Program Files (x86)\PuTTY\,那麼你就應該能夠運行plink -ssh [email protected]

這樣做的原因是,SSH命令使用OpenSSH和OpenSSH不會承認膩子鍵。

plink.exe實際上是在most up voted answer for Git/PuTTY configuration questions的第一個解決方案中提到的,它很難被發現。

1

對我來說,解決方案是必要的路徑在linux風格被指定,像這樣:

set GIT_SSH=/c/PuTTY/plink.exe 

這是很令人困惑,因爲我設置環境變量在Windows語法,但價值是Linux風格的路徑。

關鍵點是:

echo $GIT_SSH 
C:\Program Files (x86)\PuTTY\plink.exe <-- not a valid path in bash shell