[教學] 使用 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 )。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_001 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_001](https://2.bp.blogspot.com/-HTUZdyFnhjI/WIJugBRKXaI/AAAAAAAAI30/Rqkhx4tdRDge4DJF1HTY-myvsCBVtWIAQCLcB/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://3.bp.blogspot.com/-JH_qx0M3k6I/WIJnWDi9bUI/AAAAAAAAI3E/T-D9xeafpocsG4JVcKSRx81uPL-ZU02sQCLcB/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://2.bp.blogspot.com/-b_7TroVrfGU/WIJnWW6RqOI/AAAAAAAAI3A/0S-uptI3TXQlMq2gU0aii6aUeCBdwgIMACLcB/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_201.jpg)
當讀取條在跑的時候,要一直使用滑鼠點擊畫面「Key 框格」中所包含的範圍。隨意點取,建立雜湊數據,直到讀取條完全跑完。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_202 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_202](https://1.bp.blogspot.com/-BNDPvVT4E9Y/WIJnWCqLUdI/AAAAAAAAI28/Fi-YTWtUbWAces4dBcRR9HJB5Ga_IlyaQCLcB/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://4.bp.blogspot.com/--6Tgaee30RU/WIJnWqnMqsI/AAAAAAAAI3I/dIA6AHNM3KkzoSXypPcbmk5DzfIcTh9mgCLcB/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://2.bp.blogspot.com/-YceTTS3kERM/WIJnW8Vqw4I/AAAAAAAAI3Q/wKKxHNE9i0shy0D-R_qAeiEtedLu-_wzgCLcB/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://4.bp.blogspot.com/-7BVHbXNKNVQ/WIJnW5upe-I/AAAAAAAAI3M/mw6UpU7-hzUlSCHjrwLNJ8RANQAz7uwiQCLcB/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://3.bp.blogspot.com/-sbzCP3sRURs/WIJnXYkixlI/AAAAAAAAI3U/-xNHxT2kYto8SncUXpoo7-FwvTVZm0d9wCLcB/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://1.bp.blogspot.com/-YXpW8BGJe1M/WIJnXcqTfPI/AAAAAAAAI3Y/bokeOLO5xg4FefugGQbKJrdU4k6qLGSrgCLcB/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://1.bp.blogspot.com/-ioNUlAJlu2g/WIJnXT5mUlI/AAAAAAAAI3c/5IvBXh__u3c-TOiLE0DvuE31mOvVZ_k-gCLcB/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://3.bp.blogspot.com/-D6705JMZp3g/WIJnXjAXS_I/AAAAAAAAI3g/QVUWAmoEfRYFm2rYhe6KUtilZO9yZINtQCLcB/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_402.jpg)
匯入現有私鑰
重新打開 PuTTYgen ,並按下「Load」。![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_403 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_403](https://3.bp.blogspot.com/-B0E6YU0cnGA/WIJnXyEohvI/AAAAAAAAI3o/ORJx7YyUO9Mw7X2fufiErVTbVuxevDbigCLcB/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://1.bp.blogspot.com/-Ntebw7c0KpQ/WIJnX1hRJnI/AAAAAAAAI3k/4mBgWm4yhd0TcmCp5DHs68zMI3iQLuVqwCLcB/s1600/puttygen-ssh-rsa-dsa-public-private-key-pair_404.jpg)
就會出現要輸入密碼的狀態了。
![[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_405 [教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰_405](https://4.bp.blogspot.com/-0UIeyEiX-vg/WIJnYIjNQ7I/AAAAAAAAI3s/qSM7LiCSGzMhGb_gR2hlHo3qt0R0SFUGwCLcB/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)
僅此記錄