執行 SSH 的 Cisco 路由器與交換器會透過 crypto key generate rsa 指令在裝置上產生自己的 RSA 金鑰對,而私密金鑰部分會保留在 NVRAM 內部。對於想要查看 PEM 位元組、離線準備金鑰,或只是想在設定之前了解 RSA 金鑰對長什麼樣的工程師,可以在瀏覽器中產生一組 RSA-OAEP 金鑰對以進行檢視與實驗室工作,因為 Cisco IOS 並不會將瀏覽器產生的 PEM 匯入其 SSH 伺服器。RSA 金鑰產生器使用瀏覽器原生的 Web 加密功能實作,產生一組全新的 2048 或 3072 位元 RSA-OAEP 金鑰對搭配 SHA-256,將公開金鑰部分匯出為 SubjectPublicKeyInfo PEM 格式,並將私密金鑰部分匯出為未加密的 PKCS#8 PEM 格式,且絕不會將金鑰資料傳輸到任何伺服器。兩個大質數與固定的公開指數 65537 都是在本地端產生;公開 PEM 以 -----BEGIN PUBLIC KEY----- 開頭,私密 PEM 以 -----BEGIN PRIVATE KEY----- 開頭,兩者皆依據 RFC 7468 以 64 欄寬換行。

create rsa key to enable ssh cisco
在瀏覽器中產生 RSA-OAEP 金鑰對

Cisco SSH 對 RSA 金鑰的要求

Cisco IOS、IOS-XE 與 NX-OS 都仰賴 RSA 金鑰對來協商 SSH 第 2 版連線。若裝置上沒有 RSA 金鑰,SSH 伺服器將拒絕啟動,這也是為什麼每份 Cisco SSH 設定指南都從金鑰產生開始。裝置上的指令在設定模式下如下:首先設定主機名稱與 IP 網域名稱,因為 Cisco 會使用這兩者來建立金鑰標籤,接著執行 crypto key generate rsa general-keys modulus 2048。模數值控制金鑰大小:2048 是現代的基準,而 3072 在較新的映像檔中可用,並以較慢的交握效能為代價提供更大的餘裕。有些平台仍接受 1024 位元金鑰,但 Cisco 自身的安全指引將該大小視為舊式規格,建議在下次稽核週期前替換掉。

裝置上的產生器會將私密金鑰寫入裝置安全儲存區中 NVRAM 下的一個隱藏檔案,而非可攜的 PEM。該設計將金鑰保留在硬體內部,但也意味著您無法輕易將位元組複製到裝置外進行檢視,而這正是促使許多管理員尋找離線產生器的確切落差。如需 Cisco 端指令序列的更深入說明,Cisco 交換器金鑰產生指南從純交換器的角度介紹了同一個工具。

在瀏覽器中產生 RSA 金鑰對

RSA 金鑰產生器會在您的瀏覽器分頁中建立一組真正的 RSA 金鑰對,且不會上傳任何資料。當您想了解 PEM 的樣貌、為實驗室環境準備金鑰,或在決定要在正式交換器上採用哪個模數大小之前進行比較時,請使用它。完整程序簡短,並遵循 RFC 8017 規範中針對 RSA-OAEP 作業所建議的相同參數模式。

  1. 確認目標應用程式預期使用 RSA-OAEP 搭配 SHA-256,以及 SPKI 公開金鑰封裝或 PKCS#8 私密金鑰封裝。Cisco IOS 本身並不會將這些封裝直接匯入其 SSH 伺服器,因此請將此工作流程用於實驗室、測試或檢視用途,而非作為 crypto key generate rsa 的直接替代方案。
  2. 在現代的桌面瀏覽器中開啟 RSA 金鑰產生器。為追求廣泛相容性請選擇 2048 位元;當接收端平台支援較大模數且您能接受較長的產生時間時,請選擇 3072 位元。此工具不提供 1024 位元金鑰,因為該模數大小已不再被視為安全。
  3. 點擊產生並稍候。2048 位元的產生通常在一秒內完成;3072 位元的產生可能明顯需要更長時間,因為 Web 加密功能實作必須找出兩個較大的質數,並針對指數 65537 進行驗證。
  4. 複製公開 PEM(以 -----BEGIN PUBLIC KEY----- 開頭的區塊),僅與需要對持有者進行加密的系統分享。私密 PEM(以 -----BEGIN PRIVATE KEY----- 開頭的區塊)為未加密的 PKCS#8,必須直接移入受保護的儲存區,例如硬體安全模組、加密金鑰庫或受管理的秘密保存庫。
  5. 在依賴該金鑰對之前,執行端對端加密測試。使用公開金鑰加密一段簡短的 UTF-8 訊息,然後在同一個工具內使用私密金鑰解密密文,並確認原始文字逐位元組地還原。僅能乾淨匯入的 PEM 本身並不足夠;往返測試才能證明參數相符。

在 Cisco 路由器或交換器上設定 SSH

一旦了解 RSA 金鑰對的樣貌,IOS 設定就很簡短且可還原。該順序在 Cisco 自身的設定指南中已完善建立,並適用於 IOS、IOS-XE,以及大多數支援 SSHv2 的 NX-OS 版本。

在全域設定中執行 ip ssh version 2 以停用舊式的 SSHv1,該版本多年來一直被視為不安全。使用 ip ssh rsa keypair-name 將 SSH 伺服器綁定到該金鑰對,其中名稱需與您在金鑰產生期間設定的主機名稱與網域名稱相符。使用 username admin privilege 15 secret 接著一組強密碼來建立本機使用者,接著移至 VTY 線路:line vty 0 15、transport input ssh 以捨棄 Telnet、login local 以要求使用本機使用者資料庫,以及 exec-timeout 15 0 以在閒置 15 分鐘後關閉工作階段。請僅在確認 SSH 可正常運作後,再使用 write memory 儲存設定;否則失敗的 SSH 設定可能會將您鎖在遠端工作階段之外。

在關閉主控台工作階段之前,從另一台機器測試新的 SSH 伺服器,方法是從可連線到該裝置的工作站執行 ssh -o PreferredAuthentications=password [email protected]。成功顯示密碼提示並進入可用的 shell,即可確認 RSA 金鑰已就位且 VTY 線路正在回應。

金鑰大小、格式與取捨

模數大小產生時間 (瀏覽器)Cisco IOS 支援實際用途
1024 位元不提供僅限舊式規格避免使用;低於現代指引
2048 位元快速(通常在一秒內)IOS 12.x+ 及之後版本全面支援SSHv2 的預設基準
3072 位元較慢(數秒)大多數現代 IOS、IOS-XE 與 NX-OS 上可用更高的安全邊際,但交握較慢

產生時間欄中的數字僅描述方向與大致量級;確切的時間會因裝置 CPU、瀏覽器版本與熵來源而異。請自行執行該工具以取得適用於您機器的精確數字。

就 SSH 而言,2048 位元幾乎是當今每個 Cisco 部署的正確預設值。僅在平台明確支援且稍慢的交握可被接受時,才升級至 3072。兩種大小使用相同的 RSA 基元,因此除了 ASN.1 結構內記錄的模數長度之外,公開 PEM 中所看到的位元組在結構上於兩種選項之間完全相同。

瀏覽器產生金鑰用於 Cisco 的誠實限制

RSA 金鑰產生器圍繞著 RSA-OAEP 加密所建置,對許多現成應用程式而言是正確的選擇,但與 SSH 伺服器簽章的使用案例並不相同。Cisco 的 SSH 實作預期裝置將 RSA 金鑰保存在其自身的安全儲存區中,並將其用於 SSHv2 交握簽章,而非用於 OAEP 加密。您從產生器取得的 PEM 區塊是有效的 RSA 金鑰資料,並宣告 SHA-256 為雜湊演算法,但它們並非格式化為 OpenSSH authorized_keys 行,也不是 Cisco IOS 透過 crypto key generate rsa 在內部建立之金鑰的直接替代方案。

此落差至關重要,因此誠實的工作流程如下:使用 RSA 金鑰產生器來了解 RSA 金鑰對的樣貌、在實驗室中測試 OAEP 往返,並為接受 SPKI 或 PKCS#8 封裝的應用程式產生這些封裝。對於真實 Cisco 路由器或交換器上的正式 SSH,請計劃在裝置本身執行 crypto key generate rsa。這兩種工作流程是互補而非競爭:瀏覽器工具教授結構,裝置上的指令則強制執行平台以硬體為後盾的儲存模型。

若您需要將金鑰匯入確實接受 PEM 的系統(例如 AAA 伺服器、IKE 對等設定,或支援 PEM 格式主機金鑰的 Linux SSH 用戶端),請將私密 PEM 直接移入目的端的受保護儲存區,絕不要將其貼到聊天視窗、Issue 追蹤器、瀏覽器同步的筆記或原始碼管控中,並在疑似外洩時立即更換金鑰。輸出僅保留在頁面的元件記憶體中,直到分頁關閉或頁面被取代,因此關閉分頁並清除剪貼簿紀錄是工作流程的一部分,而非可選的衛生步驟。

若您正在評估選項,建立 RSA 金鑰以啟用 SSH:PEM 與 OpenSSH 的比較對此有詳細說明。