問題:
使用pysftptpSFTP連接時,遇到錯誤由於known_hosts 檔案由於known_hosts 檔案中缺少主機密鑰。終端程式 Putty 將主機金鑰儲存在 Windows 登錄中,這與 pysftp 的預期位置不同。
解決方案:
pysftp 對主機金鑰的處理有已知限制。考慮直接過渡到 Paramiko,因為它在主機金鑰管理方面提供了更大的靈活性。
對於 pysftp 用戶,請避免設定 cnopts.hostkeys = None,因為它會透過停用主機金鑰驗證來損害安全性。
使用 CnOpts.hostkeys 管理受信任的主機金鑰。指定包含伺服器公鑰的known_hosts 檔案或使用CnOpts 手動新增金鑰。
另一種方法是使用SSH 的ssh-keyscan 工具檢索主機金鑰並將其新增至known_hosts 檔案。雖然方便,但這種方法有局限性,例如不適用於非標準伺服器連接埠。
為了增強安全性,請從受信任的來源(例如伺服器管理員)取得主機金鑰,以防止攻擊者攔截金鑰並模擬伺服器。
如果需要基於指紋的主機金鑰驗證,請參閱使用 pysftp 或 Paramiko 實作此類驗證的文件。
以上是使用 pysftp 時如何安全地驗證主機金鑰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!