![在unix環境下使用puttygen產生公鑰?](https://rvso.com/image/1303470/%E5%9C%A8unix%E7%92%B0%E5%A2%83%E4%B8%8B%E4%BD%BF%E7%94%A8puttygen%E7%94%A2%E7%94%9F%E5%85%AC%E9%91%B0%EF%BC%9F%20.png)
(unix,此處:ubuntu 10.4)
我知道如何在 unix (ssh-keygen) 中建立 ssh 金鑰對以及如何在 windows (puttygen) 中建立 ssh 金鑰對。在我的例子中,缺少的部分是如何在 unix shell 中使用在 windows (puttygen) 中產生的金鑰對。
在這種特殊情況下,我需要將公鑰放在哪裡才能將其用作 git 中的 ssh 密鑰。
答案1
取決於您需要哪個密鑰...
私鑰 – 用於登入從將一個 Unix 系統轉換為另一個 Unix
您必須先使用 PuTTYgen 將金鑰從 PuTTY 格式轉換為 OpenSSH 可以使用的格式。
在 Windows 版本的 PuTTYgen 中,使用轉換 → 導出 OpenSSH 金鑰菜單項目;
在 Linux 版本中,
puttygen mykey.ppk -O private-openssh -o mykey
.
僅公鑰 – 用於從 Windows 登入到Unix
請參閱丹尼爾的回答。
答案2
Puttygen 視窗包含一個文字區域,其中包含 SSH 所需格式的公鑰。
複製它,並將其添加到伺服器上的文件中,~/.ssh/authorized_keys
單獨一行。確保檔案和目錄不可被群組和其他人讀取/寫入,即 run chmod go-rwx ~/.ssh ~/.ssh/authorized_keys
。
然後伺服器將接受您的登錄,並使用私鑰進行身份驗證。
答案3
好吧,我想我沒有說清楚,但我找到了解決方案:
- 啟動puttygen
- 載入私鑰
- 選單轉換|匯出 OpenSSH 金鑰
- 儲存在某處,打開,將內容複製到剪貼簿,在 linux 上貼上到檔案:$HOME/.ssh/id_dsa
- (可選)複製文字區域「用於貼上到 OpenSSHauthorized_keys 檔案中的公鑰」的內容,在 Linux 上貼上到檔案:$HOME/.ssh/id_dsa.pub
現在您可以在 shell 中使用此 SSH 金鑰登入遠端系統。
附註:若要在 Linux shell 中無縫使用 Windows putty 中的 git 連接到 git,請在 putty 工作階段中設定以下選項:
(當然,您必須將公鑰放入 ~/.ssh/authorized_keys 中..)