[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰
PuTTYgen 是生成和處理 SSH 公共 ( public key ) 和私有 ( private key ) 密鑰對的工具,是一款基於 PuTTY 衍生出的工具套件。運行 PuTTYgen 可以產生 RSA 與 DSA 格式的金鑰,也可以與一些其他 SSH 客戶端的私鑰格式做交互操作 ( WinSCP、FileZilla )。
PuTTYgen 可以使用「SSH-1 ( RSA )、SSH-2 ( RSA )、SSH-2 DSA」這三種格式做輸出,預設使用 2048 bits 建立金鑰。
操作 PuTTYgen 這個工具時,除了可以產生 SSH 連線 RSA、DSA 公鑰和私鑰 ( 密鑰對 ) 外,還能加載現有金鑰進行簡易修編。例如幫私鑰加入密碼,變更私鑰密碼,或是變更金鑰註解 ( Key comment )。
Windows 上如果要連線到 Red Hat OpenShift、Google Cloud Platform GCE、Amazon EC2 等雲端平台,使用 PuTTYgen 和 PuTTY 這兩個工具搭配,能方便的建立起 SSH 的連線。
文章中使用的系統為 Windows 7,教學以此做示例操作說明。
檔案連結:PuTTY Download Page
軟體許可:PuTTY Licence
功能特性:產生 SSH 連線 RSA、DSA 公鑰和私鑰密鑰對,加載現有私鑰進行簡易修編。例如:幫私鑰加入密碼,變更私鑰密碼,或是變更金鑰註解 ( Key comment )。
當讀取條在跑的時候,要一直使用滑鼠點擊畫面「Key 框格」中所包含的範圍。隨意點取,建立雜湊數據,直到讀取條完全跑完。
讀取條跑完後,即可將上方框格中「OpenSSH authorized_keys」公鑰授權文件複製並貼到應用的平台上使用 (* 例如:OpenShift、GCE )。接著再點擊「Save private key」,將私鑰儲存到電腦中。Key fingerprint 則為金鑰指紋。
這裡的例子,在電腦建立了一個「key」的資料夾,儲存的名稱為「coke.ppk」。
這邊先試著觀察原始的公鑰內容,點取「Save public key」,並儲存公鑰名稱為『public』到「key」資料夾。
如果使用 Notepad++ 開啟「public」公鑰檔案,會發現第二行的「Comment: "rsa-key-20170120"」與 PuTTYgen 上面的數值是相同的。
再使用 Notepad++ 打開「coke.ppk」私鑰檔案,會發現其實私鑰中也附著一份公鑰資料。第三行的「Comment: "rsa-key-20170120"」也與 PuTTYgen 數值是相同的。
也就是說公鑰是私鑰連接至遠端應用平台的橋樑。公鑰 ( 對外公開的金鑰 ),遠端電腦與本地端電腦兩者銜接時的認證機制,當兩方彼此公鑰資料符合,即成立連線的條件。私鑰 ( 私密金鑰 ),就等於開啟秘密連線的鑰匙。
通常在遠端應用平台放入公鑰後,遠端應用平台還會提供一個用戶名稱,用來對接本地端的私鑰。如果在 PuTTYgen 變更金鑰註解 ( Key comment ) 的內容,私鑰與公鑰裡的 Comment 資料也會不同。
將檔案儲存成「coke-1234.ppk」。並關掉 PuTTYgen。
匯入「coke-1234.ppk」時
就會出現要輸入密碼的狀態了。
[教學 ] 使用 Putty 透過 SSH 連線到 OpenShift 應用程式站台
[教學] Google Compute Engine ( GCE ) 使用 PuTTY SSH 登入實例
PuTTYgen 可以使用「SSH-1 ( RSA )、SSH-2 ( RSA )、SSH-2 DSA」這三種格式做輸出,預設使用 2048 bits 建立金鑰。
操作 PuTTYgen 這個工具時,除了可以產生 SSH 連線 RSA、DSA 公鑰和私鑰 ( 密鑰對 ) 外,還能加載現有金鑰進行簡易修編。例如幫私鑰加入密碼,變更私鑰密碼,或是變更金鑰註解 ( Key comment )。
Windows 上如果要連線到 Red Hat OpenShift、Google Cloud Platform GCE、Amazon EC2 等雲端平台,使用 PuTTYgen 和 PuTTY 這兩個工具搭配,能方便的建立起 SSH 的連線。
文章中使用的系統為 Windows 7,教學以此做示例操作說明。
操作流程
- 下載 PuTTYgen
- 建立 SSH「公鑰與私鑰」密鑰對
- 更改金鑰註解 ( Key comment )
- 私鑰加上密碼,匯入現有私鑰
軟體檔案
軟體名稱:PuTTYgen檔案連結:PuTTY Download Page
軟體許可:PuTTY Licence
功能特性:產生 SSH 連線 RSA、DSA 公鑰和私鑰密鑰對,加載現有私鑰進行簡易修編。例如:幫私鑰加入密碼,變更私鑰密碼,或是變更金鑰註解 ( Key comment )。
使用方式
下載 PuTTYgen
前往 PuTTY Download Page 頁面,點擊下載最新版本綠色區塊中的「puttygen.exe」。Step2 建立 SSH「公鑰與私鑰」密鑰對
點擊運行並打開「puttygen.exe」之後,選擇 SSH-2 ( RSA ) 2048 bits,按下畫面中的「Generate」就能開始建立 SSH 「公鑰與私鑰」密鑰對。當讀取條在跑的時候,要一直使用滑鼠點擊畫面「Key 框格」中所包含的範圍。隨意點取,建立雜湊數據,直到讀取條完全跑完。
讀取條跑完後,即可將上方框格中「OpenSSH authorized_keys」公鑰授權文件複製並貼到應用的平台上使用 (* 例如:OpenShift、GCE )。接著再點擊「Save private key」,將私鑰儲存到電腦中。Key fingerprint 則為金鑰指紋。
這裡的例子,在電腦建立了一個「key」的資料夾,儲存的名稱為「coke.ppk」。
Step3 更改金鑰註解 ( Key comment )
某些線上應用平台,會需要變更 Key comment 才能正常連接 SSH (* 例如 GCE )。這邊先試著觀察原始的公鑰內容,點取「Save public key」,並儲存公鑰名稱為『public』到「key」資料夾。
如果使用 Notepad++ 開啟「public」公鑰檔案,會發現第二行的「Comment: "rsa-key-20170120"」與 PuTTYgen 上面的數值是相同的。
再使用 Notepad++ 打開「coke.ppk」私鑰檔案,會發現其實私鑰中也附著一份公鑰資料。第三行的「Comment: "rsa-key-20170120"」也與 PuTTYgen 數值是相同的。
也就是說公鑰是私鑰連接至遠端應用平台的橋樑。公鑰 ( 對外公開的金鑰 ),遠端電腦與本地端電腦兩者銜接時的認證機制,當兩方彼此公鑰資料符合,即成立連線的條件。私鑰 ( 私密金鑰 ),就等於開啟秘密連線的鑰匙。
通常在遠端應用平台放入公鑰後,遠端應用平台還會提供一個用戶名稱,用來對接本地端的私鑰。如果在 PuTTYgen 變更金鑰註解 ( Key comment ) 的內容,私鑰與公鑰裡的 Comment 資料也會不同。
Step4 私鑰加上密碼,匯入現有私鑰
如果私鑰加上密碼,在做對接連線時,就要輸入密碼。私鑰加上密碼
這邊做個小實驗,在 PuTTYgen 上的「Key passphrase」和「confirm passphrase」中,輸入「1234」並按下「Save private key」。將檔案儲存成「coke-1234.ppk」。並關掉 PuTTYgen。
匯入現有私鑰
重新打開 PuTTYgen ,並按下「Load」。匯入「coke-1234.ppk」時
就會出現要輸入密碼的狀態了。
相關文章
OpenShift 使用 FTP 連線,透過 FileZilla SFTP 管理檔案[教學 ] 使用 Putty 透過 SSH 連線到 OpenShift 應用程式站台
[教學] Google Compute Engine ( GCE ) 使用 PuTTY SSH 登入實例
在『Step2 建立 SSH「公鑰與私鑰」密鑰對』的部份,只要在空白區域隨意移動滑鼠就可以了,不用點擊滑鼠。
回覆刪除新的puttygen裡面最外面的介面看不到SSH-2 RSA的選項,這樣做出來的會是RSA的SSH-3 version,在一些server登錄會失敗,會顯示 not a putty ssh-2 private key。
回覆刪除確認方法是看編出來的ppk檔案,最一開始如果寫的是PuTTY-User-Key-File-3: ssh-rsa,那就是SSH-3版的。
解決方法是在puttygen裡面最上面的選單選擇key->Parameters for saving key files... 第一個就是選version,請選成2,之後再重新儲存成private key。
如果只是把PuTTY-User-Key-File-3強制改成PuTTY-User-Key-File-2,會出現Unable to load private key (MAC failed)
僅此記錄