假設您編寫了一個 bash 腳本來掃描數據中心中所有 Linux 服務器的正常運行時間。這樣的文件可能包含以下內容:
ssh $1 "uptime"
當您運行腳本時,它可能會因尚未將 SSH 密鑰指紋添加到known_hosts 文件中的服務器停止的問題而失敗。當這種情況發生時,你的腳本就變得毫無用處。
看:(科技共和國)
什麼是 SSH 密鑰指紋?簡單:當您嘗試使用 SSH 登錄遠程計算機時,將驗證密鑰的指紋。當您第一次登錄 SSH 服務器時,您將看到如下所示的內容。

如果您不接受指紋,連接將立即斷開。那麼,當您使用的 bash 腳本無法接受輸入以允許添加遠程 SSH 指紋時,會發生什麼情況呢?
幸運的是,SSH 的開發者想到了這一點,添加了一個命令,可以讓你輕鬆地將 SSH 指紋添加到known_hosts 文件中。
看:(科技共和國)
添加指紋
我將演示如何將指紋從遠程服務器添加到本地計算機。假設遠程服務器位於 192.168.1.162。要添加該指紋,命令為:
ssh-keyscan -H 192.168.1.162 >> ~/.ssh/known_hosts
該命令將運行並將遠程 SSH 指紋添加到本地計算機,無需您輸入,如下所示。

因此 bash 腳本的補充可能如下所示:
ssh-keyscan $1 >> ~/.ssh/known_hosts
上述添加將從命令中獲取參數(例如,./script 192.168.1.118)並將指紋添加到〜/.ssh/known_hosts然後移動到下一行——從而避免丟失 SSH 指紋問題。當然,只有當您設置了 ssh 密鑰身份驗證時,上述內容才能正常工作。否則,您必須輸入遠程計算機的密碼。
看:(科技共和國)
簡單的事情
有時,正是一些簡單的事情導致我們的 bash 腳本出錯。如果該關鍵指紋問題一直讓您的腳本感到頭疼,那麼您現在可以避免該問題。
