我們經常在 Google Compute Engine 上刪除和重新建立機器,以破壞和關閉測試環境、執行故障轉移測試等。
問題在於,GCE 總是在從映像或快照建立的每個新實例上重新建立 SSH 伺服器金鑰。
在執行 scp 或 ssh 操作時,有什麼簡單的方法可以擁有靜態 SSH 金鑰或易於跨電腦接受的 SSH 金鑰?
答案1
如果您僅使用機器進行測試(ssh
當然是測試其他東西,然後測試本身)並且安全性沒有問題(封閉環境),您可以將其作為安裝腳本/kickstart/首次啟動的一部分,以從某處提取金鑰不會產生自己的金鑰(觸發金鑰產生的方式在發行版之間有所不同,但您會發現 - RHEL 僅當它們在第一次服務啟動期間遺失時才會建立它們)。
答案2
google_compute_engine
如果您的目錄中已有私鑰文件/home/<username>/.ssh/
,則使用gcloud compute ssh <target instance>
指令不應產生新金鑰。但是,如果您將使用不同的使用者名稱或嘗試從新建立的 VM 執行個體進行 SSH,則該gcloud compute ssh
命令將產生新的私鑰/公鑰以符合安全要求。
您可以將私鑰複製到特定計算機或本地計算機,並始終從那裡進行 SSH。這將消除產生新密鑰的情況。
如果這是關於 SSH 主機金鑰,那麼您可以-o StrictHostKeyChecking=no
在 ssh 命令 (OpenSSH) 中使用選項來繞過主機金鑰真實性的檢查。