Ssh
在雲虛擬機實例中,如何處理 ssh 主機密鑰?
在像今天公司通常在 GCP 或 AWS 中使用的一次性虛擬機中,每次實例首次啟動時,都會創建一組新的 ssh 主機密鑰。這意味著,如果自您上次連接到它(通過互動式會話或更糟糕的是,在 CI 中部署最新程式碼)之後重新創建了一個實例,則 ssh 客戶端將失敗,因為主機密鑰已更改。常見的解決方案(至少使用 ansible)總是“禁用主機檢查”,但這對我來說似乎是個壞主意。您正在禁用安全檢查的重要部分。
- 在 GCE 中設置主機密鑰的最簡單方法是什麼?可能是 cloud-init 之類的東西?
- 是否可以為所有VM 實例重用相同的主機密鑰,還是只為具有相同名稱的實例重用密鑰更好?例如
db-1
,無論它被重新創建多少次,都將始終具有相同的主機密鑰,但db-2
將具有不同的主機密鑰db-1
作為實例創建過程的一部分,您應該
ssh-keyscan
新創建的 VM 實例來獲取其 ssh 主機密鑰。然後,您可以將它們分發到需要它們的任何地方。