本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
輪換 SSH 金鑰
為了安全起見,我們建議輪換 SSH 金鑰的最佳實務。通常,此輪換會指定為安全政策的一部分,並以某種自動化方式實作。根據安全性層級,對於高度敏感的通訊,SSH 金鑰對只能使用一次。這樣做可消除任何因存放金鑰所帶來的風險。不過,存放 SSH 登入資料一段時間,並設定不會對使用者造成過度負擔的間隔,會更為常見。常見的間隔是三個月。
執行 SSH 金鑰輪換的方法有兩種:
- Console
-
在主控台中執行金鑰輪換
-
在 https://https://console.aws.amazon.com/transfer/ 開啟 AWS Transfer Family 主控台。
-
導覽至伺服器頁面。
-
在伺服器 ID 欄中選擇識別符,以查看伺服器詳細資訊頁面。
-
在使用者下,選取您要輪換其 SSH 公有金鑰之使用者的核取方塊,然後選擇動作,然後選擇新增金鑰以查看新增金鑰頁面。
或
選擇使用者名稱以查看使用者詳細資訊頁面,然後選擇新增 SSH 公有金鑰以查看新增金鑰頁面。
-
輸入新的 SSH 公有金鑰,然後選擇新增金鑰。
SSH 公有金鑰的格式取決於您產生的金鑰類型。
-
對於 RSA 金鑰,格式為 ssh-rsa string。
-
對於 ED25519 金鑰,格式為 ssh-ed25519 string。
-
對於 ECDSA 金鑰,金鑰開頭為 ecdsa-sha2-nistp256、 ecdsa-sha2-nistp384或 ecdsa-sha2-nistp521,取決於您產生的金鑰大小。開始字串後面接著 string,類似於其他金鑰類型。
您會返回使用者詳細資訊頁面,而您剛輸入的新 SSH 公有金鑰會顯示在 SSH 公有金鑰區段中。
-
選取您要刪除之舊金鑰的核取方塊,然後選擇刪除。
-
輸入字詞 確認刪除操作delete,然後選擇刪除。
- API
-
使用 API 執行金鑰輪換
-
在 macOS、Linux 或 Unix 作業系統上,開啟命令終端機。
-
輸入下列命令,擷取您要刪除的 SSH 金鑰。若要使用此命令,請將 serverID取代為 Transfer Family 伺服器的伺服器 ID,並將 取代username為使用者名稱。
aws transfer describe-user --server-id='serverID' --user-name='username'
命令會傳回使用者的詳細資訊。複製 "SshPublicKeyId": 欄位的內容。您稍後需要在此程序中輸入此值。
"SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID",
"DateImported": 1621969331.072 } ],
-
接著,為您的使用者匯入新的 SSH 金鑰。在 提示中輸入下列命令。若要使用此命令,請將 serverID取代為 Transfer Family 伺服器的伺服器 ID、將 取代username為使用者名稱,並將 取代public-key為新公有金鑰的指紋。
aws transfer import-ssh-public-key --server-id='serverID' --user-name='username'
--ssh-public-key-body='public-key'
如果命令成功,則不會傳回任何輸出。
-
最後,執行下列命令來刪除舊金鑰。若要使用此命令,請將 serverID取代為 Transfer Family 伺服器的伺服器 ID、將 取代username為使用者名稱,並將 取代keyID-from-step-2為您在此程序的步驟 2 中複製的金鑰 ID 值
aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username'
--ssh-public-key-id='keyID-from-step-2'
-
(選用) 若要確認舊金鑰不再存在,請重複步驟 2。