SSH 公鑰檢查是一個重要的安全機制,能夠防範中間人劫持等黑客攻擊。可是在特定狀況下,嚴格的 SSH 公鑰檢查會破壞一些依賴 SSH 協議的自動化任務,就須要一種手段可以繞過 SSH 的公鑰檢查。git
首先看看什麼是 SSH 公鑰檢查
SSH 鏈接遠程主機時,會檢查主機的公鑰。若是是第一次該主機,會顯示該主機的公鑰摘要,提示用戶是否信任該主機:安全
The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established. RSA key fingerprint is a3:ca:ad:95:a1:45:d2:57:3a:e9:e7:75:a8:4c:1f:9f. Are you sure you want to continue connecting (yes/no)?
當選擇接受,就會將該主機的公鑰追加到文件 ~/.ssh/known_hosts 中。當再次鏈接該主機時,就不會再提示該問題了。 服務器
如何讓鏈接新主機時,不進行公鑰確認?
在首次鏈接服務器時,會彈出公鑰確認的提示。這會致使某些自動化任務,因爲初次鏈接服務器而致使自動化任務中斷。或者因爲 ~/.ssh/known_hosts 文件內容清空,致使自動化任務中斷。 ssh
SSH 客戶端的 StrictHostKeyChecking 配置指令,能夠實現當第一次鏈接服務器時,自動接受新的公鑰。在當前用戶的 ~/.ssh目錄下 若是存在config 直接編輯 不然新增spa
cd ~/.ssh touch config && chmod 600 config
添加以下內容 (這裏以coding爲例).net
Host *coding.net StrictHostKeyChecking no
再次執行 git clone 將不會彈出公鑰確認提示。code
參考: https://blog.csdn.net/aabbcc456aa/article/details/18981279blog