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