我已經考慮過這一點,並且我的主機提供帶外支持,因此我可以簡單地創建帶外密鑰指紋,並在從家中連接到該伺服器時對其進行比較。
除了帶外訪問之外,還有其他方法可以驗證您連接的主機確實是您購買的伺服器嗎?
這在實踐中是如何實現的?
答案1
如果我理解正確的話,您是在問除了帶外通道之外是否有任何方法可以安全地檢索您的 ssh 伺服器的公鑰指紋。嚴格來說,答案一定是不,因為從理論上講,中間人 (MITM) 可以設定一個偽造的 ssh 伺服器,該伺服器允許您“登入”,無論您提供什麼憑證。如果您事先不知道真實伺服器的公鑰指紋,您將無法知道假伺服器的指紋不是您真實伺服器的指紋。
在實踐中,大多數人認為(在大多數情況下,這是合理的)MITM 實際上欺騙他們的可能性非常低,因此他們簡單地接受第一次連接時向他們提供的伺服器金鑰指紋是他們真正的ssh 伺服器,而不是假的。
當然,隨著時間的推移,隨著您與伺服器建立許多 ssh 連接,看到 MITM 嘗試欺騙您的可能性將會增加。幸運的是,對於您在第一個連接之後建立的每個連接,伺服器的公鑰都將儲存在您的known_hosts
檔案中。因此,如果 MITM 曾經做在任何特定的連接嘗試期間嘗試一些惡作劇(後第一個),您的 ssh 用戶端將立即提醒您剛剛收到的伺服器金鑰與預期不匹配,並且連線將被中止。
總而言之,如果您有帶外方法來了解伺服器的金鑰,那麼您應該在建立更新檔案的第一個連線時使用它來驗證金鑰known_hosts
。但即使你沒有這樣的手段,雖然有一個理論的安全風險,這個風險可能很小。