概述
ssh-keyscan 從一個或多個主機收集 SSH 公開金鑰並將其輸出到標準輸出。這些金鑰會被添加到 `known_hosts` 檔案中,用於增強 SSH 連線的安全性。
主要功能
- 收集 SSH 主機公開金鑰
- 支援更新 `known_hosts` 檔案
- 防止中間人攻擊 (MITM)
- 掃描多個主機或特定連接埠
主要選項
ssh-keyscan 命令的主要選項用於控制金鑰收集方式、輸出格式以及目標主機的指定。
金鑰收集與輸出
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`ssh-keyscan` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 ssh-keyscan 的各種使用範例,了解如何有效收集和管理 SSH 主機金鑰。
掃描單一主機的金鑰
ssh-keyscan example.com
將指定主機的所有公開金鑰顯示到標準輸出。
將金鑰添加到 known_hosts 檔案
ssh-keyscan -H example.com >> ~/.ssh/known_hosts
收集主機的金鑰並將其添加到 `~/.ssh/known_hosts` 檔案。建議使用 `-H` 選項雜湊主機名稱進行儲存,以提高安全性。
掃描特定連接埠的金鑰
ssh-keyscan -p 2222 example.com
掃描提供 SSH 服務但使用非預設 SSH 連接埠 (22) 的主機的金鑰。
從檔案讀取主機列表
ssh-keyscan -f hosts.txt
當 `hosts.txt` 檔案中每行包含一個主機名稱時,掃描該檔案中所有主機的金鑰。
僅掃描特定金鑰類型
ssh-keyscan -t rsa,ecdsa example.com
僅收集 RSA 和 ECDSA 金鑰類型。
提示與注意事項
使用 ssh-keyscan 時的實用提示和需要注意的安全事項。
安全考量
- 請務必確認收集到的金鑰來自可信來源。特別是對於首次連接的伺服器,最好直接從伺服器管理員那裡獲取金鑰的指紋。
- `known_hosts` 檔案包含敏感資訊,應使用適當的檔案權限(通常是 600)進行保護。
- `ssh-keyscan` 僅收集伺服器的公開金鑰,不會嘗試對伺服器進行身份驗證。因此,即使沒有伺服器的存取權限,也可以收集其金鑰。
在自動化腳本中使用
在配置新伺服器或管理大型環境中的 `known_hosts` 檔案時,可以將 `ssh-keyscan` 包含在自動化腳本中。這可以減少手動添加金鑰的麻煩,並維持一致的安全策略。