[教學] 使用 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-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 連線 RSA、DSA 公鑰與私鑰_001 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_001](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgupIJOAOqgvubZqMNSEDkzRZvRiRjw0Ox4h9ToUlOill8h_U7bo1hE5y14OYHgFiXTahLfjakw87Fy6Mk5oxnWa-i5qL8kuGdS01RRDIcnKCGXj1Bt1_8JfhKU-0HJIgNhrzNinSyvnVs/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_001.jpg)
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」。![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_101 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_101](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC4JE9FmdF0B2POHBU19Q3FxbqwhC5qVAYmQYiKDDY3da2Fvn9HO9bTGlmlmQ4XAaG15SivhVEllGp0xBrTxejpr2gmRmLO1ak9pvoYaAL06WkaHwFwJgQTz4ijSAzV81TkeLigyPmfJ0/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_101.jpg)
Step2 建立 SSH「公鑰與私鑰」密鑰對
點擊運行並打開「puttygen.exe」之後,選擇 SSH-2 ( RSA ) 2048 bits,按下畫面中的「Generate」就能開始建立 SSH 「公鑰與私鑰」密鑰對。![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_201 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_201](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibcxrNnTfv-ZElb-vaINEAj57BXZmVUvv5mnSxrUcfNNcK3ms2KkE8nbCa95Ol2WEkoT_xxVNlITg2ibx26XE874_RxT1YdK-Bvp_mZuZC8hmNyM-0s5c91UWlWA0q9VftscJDCOcqhMs/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_201.jpg)
當讀取條在跑的時候,要一直使用滑鼠點擊畫面「Key 框格」中所包含的範圍。隨意點取,建立雜湊數據,直到讀取條完全跑完。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_202 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_202](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdFz3kufKYycCbNzmATzHRFGHqUBnKdyeOa7Yhf47XRNZ3ZaOe8yA-1fIX9W0bF1LJfaxg3lRinAl8UufF8BOu66ZKyvsMEaJhedJxQzi8Evlo0nCdGPLD7s-6KKaSoTaqkQ71EgjBcTc/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_202.jpg)
讀取條跑完後,即可將上方框格中「OpenSSH authorized_keys」公鑰授權文件複製並貼到應用的平台上使用 (* 例如:OpenShift、GCE )。接著再點擊「Save private key」,將私鑰儲存到電腦中。Key fingerprint 則為金鑰指紋。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_203 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_203](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6qzdKS95cGjkMR0SVsn9D8ll9MIDPuVTszNZiURAsl36mwjnbRudyLqOqXWNWI80mCsfVq-qkp6Juuld71MrHIntVKuuXUfTEbbT4utx7Gn48pOxn2F53VXgIDbDxLUXxMBKF-WUhQ90/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_203.jpg)
這裡的例子,在電腦建立了一個「key」的資料夾,儲存的名稱為「coke.ppk」。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_204 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_204](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9f9Pe_P44i0kiZBJLObbutAN4-dx-pbe0Lx561u2JWzqpR5w8-ZlYYh6vfWH7Sx1k39ry9ihHGnIF2oxsvMINVkPfUsheqKzGm4JBzli9ckQgVjTBQitz46cO1AMZjqTEHrtXP-rqqFY/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_204.jpg)
Step3 更改金鑰註解 ( Key comment )
某些線上應用平台,會需要變更 Key comment 才能正常連接 SSH (* 例如 GCE )。這邊先試著觀察原始的公鑰內容,點取「Save public key」,並儲存公鑰名稱為『public』到「key」資料夾。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_301 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_301](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY-qzaLPrYiuX16Q7XCTKO84OMVZOdw6Ts74Z1E2qf57rrPElWdURZowtofw_0cGtfXFZmaEhBaCkNbRbWQ0Ymk85UznUG6tzjytFe3V7AabqnE5CylxC0Fm76VMg9QaPCHDLmIULtRd4/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_301.jpg)
如果使用 Notepad++ 開啟「public」公鑰檔案,會發現第二行的「Comment: "rsa-key-20170120"」與 PuTTYgen 上面的數值是相同的。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_302 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_302](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7fUI4UUIvpccZpo0LMufjwgZLGQQ8uRQ9o9n8FbaEhyphenhyphen8XXaYIbs4sqOHP1lR4HgAxKsQcDNmw-Pb5K7eEVkaG_5nupO2gFAG713BS097c8h6CAYP4zHkbC2UolhN39jvxoes6Z1pkAXM/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_302.jpg)
再使用 Notepad++ 打開「coke.ppk」私鑰檔案,會發現其實私鑰中也附著一份公鑰資料。第三行的「Comment: "rsa-key-20170120"」也與 PuTTYgen 數值是相同的。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_303 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_303](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_GcKJ7f8DumXqk5uuyvgLgC3TpUOqPtLkaRRQ35V8qfUyKQn2HqCZr29XtccckdZ-oV1Ucu5bcqUdJP70Gz_MS76GUb4J24jUw_p1z1XSKsNADj5W5_7rlcD5sviTp8nFXgV17hiW1YA/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_303.jpg)
也就是說公鑰是私鑰連接至遠端應用平台的橋樑。公鑰 ( 對外公開的金鑰 ),遠端電腦與本地端電腦兩者銜接時的認證機制,當兩方彼此公鑰資料符合,即成立連線的條件。私鑰 ( 私密金鑰 ),就等於開啟秘密連線的鑰匙。
通常在遠端應用平台放入公鑰後,遠端應用平台還會提供一個用戶名稱,用來對接本地端的私鑰。如果在 PuTTYgen 變更金鑰註解 ( Key comment ) 的內容,私鑰與公鑰裡的 Comment 資料也會不同。
Step4 私鑰加上密碼,匯入現有私鑰
如果私鑰加上密碼,在做對接連線時,就要輸入密碼。私鑰加上密碼
這邊做個小實驗,在 PuTTYgen 上的「Key passphrase」和「confirm passphrase」中,輸入「1234」並按下「Save private key」。![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_401 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_401](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaVq5iMzMBr6SRea7Gzi28Kqw-FzQZ2j29ICv1DXF7Pyryniz714Zi4PmYOjxxf3Jg21oSUeZnPXIucq9EkJsrpStlav93lHOwT8bDuV6xB7CzX8Or7c7YGj9MoSpOmilRaDBMxLfGJ38/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_401.jpg)
將檔案儲存成「coke-1234.ppk」。並關掉 PuTTYgen。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_402 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_402](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDBuxKsL0KhVIx4S01JcOpklfYukB4P-vR4nyD5aSl2Fiono9dgng1MMGkn5IVOxrkhYB7H-x0jnU9o5m8li6WgfQjAP7KXqno24OoD1JRlmbSY55VBui9iGHXbmklxmAdpvOvmJaqPnE/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_402.jpg)
匯入現有私鑰
重新打開 PuTTYgen ,並按下「Load」。![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_403 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_403](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbtMmZX6E_0dQgud1bQqQ867ZaG4sufhD1bCPklz5UsJxgnz7kaJWhYjvnAglRHf6L1um6R4d-3086Acha-cg3K0kA9tRVckwMks3q5-a34YVRJmPF0SbCPd-j9opONcBTpb3pJXgub80/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_403.jpg)
匯入「coke-1234.ppk」時
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_404 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_404](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjimEvhkh5u4J_TGIxl7vXoOzZzMIxnBUitB6y_XqFH7Xsf3wel1YCjd0T_F_GhgBvFf8nzhgqvaboOn6rIPcuHmtO5JvsPzV_-xfI-XW2f-UY7ecfgbotXzWmOeNHP9Fkcf9Rqvv9P6xc/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_404.jpg)
就會出現要輸入密碼的狀態了。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_405 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_405](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIK_rQQ3TbBr3Q_9vNEvdKWAi2K1oUPcYt22zK_nFZW9_jYecmKN4p_BPfVc6a0yc4DLyyY96KiT3IpRYffjJhCmwQ6FCQqD4ikUZII_9mywPF3L3ZpyBptziPmq9FMntNtptNEPcsUPg/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_405.jpg)
相關文章
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)
僅此記錄