第 1 步:產生 SSH 金鑰
1.從命令列輸入 ssh-keygen。 (如果在命令視窗中出現錯誤,請檢查 C:\Program Files\Git\usr\bin 是否是路徑的一部分)該指令會提示您輸入一個檔案來儲存金鑰
按 Enter 接受預設金鑰和路徑 /c/Users//.ssh/id_rsa。
出現提示時輸入並重新輸入密碼。
該命令使用其公鑰和私鑰來創建您的預設身份。
2.配置tortoise-git
載入先前產生的 ssh 金鑰(id_rsa)。它會提示您選擇文件。 (ssh 密鑰的預設路徑 C:\Users\.ssh)
載入時會要求輸入密碼。在此步驟之後,putty 將載入憑證。
載入憑證後,按一下「儲存私鑰」按鈕。它將提示選擇要儲存檔案的資料夾。最好將其與 ssh 密鑰資料夾放在同一資料夾中 (C:\Users\.ssh)。也指定檔名。
現在您必須使用產生的金鑰檔案來設定 TortoiseGit。右鍵點選 repo 資料夾,選擇 TortoiseGit>Settings
在設定畫面中選擇 Git > 遠端
在遠端畫面中,選擇來源。
按一下 Putty Key 欄位旁的省略號,然後選擇使用 puttygen 產生的私鑰檔案。
私鑰的檔案格式為
----開始 RSA 私鑰------
xxxxxxyyxyyxyxyxy
錯誤是
無法載入私鑰(無法開啟檔案)
答案1
如果我理解正確的話,您沒有使用puttygen
創建密鑰對,而是使用ssh-keygen
密碼生成密鑰對,然後將該私鑰加載到 Putty 中並將其另存為Putty.ppk
並收到錯誤Couldn't load Private Key (cannot open file)
.
您建立的私鑰 ( id_rsa
) 使用什麼格式?
如果您在文字檔案中開啟它,則第一個類似於以下內容:
-----BEGIN RSA PRIVATE KEY-----
或者它看起來像這樣:
ssh-rsa AWEdxRASFLMAF......
這似乎是您加載公鑰而不是私鑰以另存為.ppk
.您顯示的螢幕截圖有 2 個文件: id_rsa
和id_rsa
,但其中一個是私鑰文件,另一個是公鑰文件。如果沒有顯示檔案副檔名,則您可能選擇了公鑰。嘗試透過選擇上面螢幕截圖中id_rsa
帶有時間戳的檔案來重新匯入密鑰。05-03-2018 12:36
驗證該文件中的第一行是
-----BEGIN RSA PRIVATE KEY-----
在你這樣做之前。
答案2
答案3
我也收到了同樣的消息,對我來說問題是我有兩個版本的膩子。我正在使用 git 擴展,可以安裝它以包含 putty(它是 putty 的 32 位元版本,位於 git 擴展程式檔案目錄中)。我自己也安裝了putty。
我已經透過 64 位元 putty 安裝產生了金鑰,並嘗試在 32 位元版本中使用該金鑰。我透過更改 git 擴充選項中的 putty 路徑解決了這個問題。
答案4
在 puttygen 的一個版本中,我收到了完全相同的錯誤訊息(「意外的檔案結尾」)。在最新版本(0.76)中,puttygen 在嘗試匯入我的金鑰時無限期地掛起,我不得不終止該進程。
由於我找不到任何對我有幫助的答案,而且我是 C++ 開發人員,因此我決定調試 puttygen,因為原始程式碼可用(使用 0.76)。
對我來說問題是不知何故我的私鑰末尾有一個額外的空格, 和puttygen 無法處理這個問題!
因此,我的私鑰檔案的最後一行不是以
” -----END RSA PRIVATE KEY-----
“
它結束於
” -----END RSA PRIVATE KEY-----
“
Puttygen 被編程為繼續從文件中掃描更多關鍵信息,直到找到以“ -----END
”開頭並以“ PRIVATE KEY-----
”結尾的行,並且它根本無法正確處理 EOF(文件結尾)!
我希望這對某人有幫助,這個問題讓我發瘋!