PuTTyGen-無法載入私鑰

PuTTyGen-無法載入私鑰

第 1 步:產生 SSH 金鑰

1.從命令列輸入 ssh-keygen。 (如果在命令視窗中出現錯誤,請檢查 C:\Program Files\Git\usr\bin 是否是路徑的一部分)該指令會提示您輸入一個檔案來儲存金鑰

  1. 按 Enter 接受預設金鑰和路徑 /c/Users//.ssh/id_rsa。

  2. 出現提示時輸入並重新輸入密碼。

  3. 該命令使用其公鑰和私鑰來創建您的預設身份。

2.配置tortoise-git

  1. 載入先前產生的 ssh 金鑰(id_rsa)。它會提示您選擇文件。 (ssh 密鑰的預設路徑 C:\Users\.ssh)

  2. 載入時會要求輸入密碼。在此步驟之後,putty 將載入憑證。

  3. 載入憑證後,按一下「儲存私鑰」按鈕。它將提示選擇要儲存檔案的資料夾。最好將其與 ssh 密鑰資料夾放在同一資料夾中 (C:\Users\.ssh)。也指定檔名。

  4. 現在您必須使用產生的金鑰檔案來設定 TortoiseGit。右鍵點選 repo 資料夾,選擇 TortoiseGit>Settings

  5. 在設定畫面中選擇 Git > 遠端

  6. 在遠端畫面中,選擇來源。

  7. 按一下 Putty Key 欄位旁的省略號,然後選擇使用 puttygen 產生的私鑰檔案。

私鑰的檔案格式為

----開始 RSA 私鑰------

xxxxxxyyxyyxyxyxy

----結束 RSA 私鑰-------- 在此輸入影像描述

設定

錯誤是

無法載入私鑰(無法開啟檔案)

在此輸入影像描述 該檔案具有讀寫權限。除了這個私鑰有一個密碼之外,我認為這可能是錯誤的原因。

我的bitbucket帳戶中的公鑰配置, 公鑰設定

答案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_rsaid_rsa,但其中一個是私鑰文件,另一個是公鑰文件。如果沒有顯示檔案副檔名,則您可能選擇了公鑰。嘗試透過選擇上面螢幕截圖中id_rsa帶有時間戳的檔案來重新匯入密鑰。05-03-2018 12:36

驗證該文件中的第一行是

-----BEGIN RSA PRIVATE KEY-----

在你這樣做之前。

答案2

問題是您的 PuTTy 使用 ssh v2(而且很好),但您的金鑰可能是為版本 3 產生的。

驗證步驟如下: 在此輸入影像描述

在此輸入影像描述

點擊“確定”後,生成新密鑰並嘗試上傳。為我工作。

答案3

我也收到了同樣的消息,對我來說問題是我有兩個版本的膩子。我正在使用 git 擴展,可以安裝它以包含 putty(它是 putty 的 32 位元版本,位於 git 擴展程式檔案目錄中)。我自己也安裝了putty。

我已經透過 64 位元 putty 安裝產生了金鑰,並嘗試在 32 位元版本中使用該金鑰。我透過更改 git 擴充選項中的 putty 路徑解決了這個問題。

用於指定 putty 位置的 git 擴充設定視窗的圖片

答案4

在 puttygen 的一個版本中,我收到了完全相同的錯誤訊息(「意外的檔案結尾」)。在最新版本(0.76)中,puttygen 在嘗試匯入我的金鑰時無限期地掛起,我不得不終止該進程。

由於我找不到任何對我有幫助的答案,而且我是 C++ 開發人員,因此我決定調試 puttygen,因為原始程式碼可用(使用 0.76)。

對我來說問題是不知何故我的私鑰末尾有一個額外的空格, 和puttygen 無法處理這個問題

因此,我的私鑰檔案的最後一行不是以

-----END RSA PRIVATE KEY-----

它結束於

-----END RSA PRIVATE KEY-----

Puttygen 被編程為繼續從文件中掃描更多關鍵信息,直到找到以“ -----END”開頭並以“ PRIVATE KEY-----”結尾的行,並且它根本無法正確處理 EOF(文件結尾)!

我希望這對某人有幫助,這個問題讓我發瘋!

相關內容