首頁 > 後端開發 > Python教學 > 使用 pysftp 或 Paramiko 時如何正確驗證 SSH 主機金鑰?

使用 pysftp 或 Paramiko 時如何正確驗證 SSH 主機金鑰?

DDD
發布: 2024-12-04 15:20:12
原創
929 人瀏覽過

How Can I Properly Verify SSH Host Keys When Using pysftp or Paramiko?

使用 pysftp 驗證主機金鑰

本文解決了使用 pysftp 根據known_hosts 檔案驗證 SSH 主機金鑰時遇到的問題。最初的錯誤是由於 pysftp 在指定位置找不到主機金鑰而發生的。

放棄 pysftp 並替代使用 Paramiko

pysftp 庫存在以下已知錯誤主機密鑰處理,建議直接使用Paramiko。 Paramiko 為 SSH 連線提供強大且支援良好的 API,包括主機金鑰驗證。

使用 Paramiko 管理主機金鑰

Paramiko 允許對主機進行細粒度控制使用 CnOpts 類別進行金鑰管理。透過設定 cnopts.hostkeys,您可以管理受信任的主機金鑰,並向程式庫提供目標主機所需的金鑰。

從已知主機檔案載入主機金鑰(建議)

最安全的方法是使用包含受信任主機的公鑰的已知主機檔案。該檔案通常位於 Unix 系統上的 ~/.ssh/known_hosts 中。 CnOpts 類別提供了從此檔案載入主機金鑰的便捷方法。

手動新增主機金鑰(不建議)

作為一種不太安全的替代方案,您可以新增使用 HostKeys 類手動主機金鑰。這需要從已知的主機檔案中提取主機金鑰或使用 SSH 直接從伺服器取得它。

使用 ssh-keyscan 公用程式進行遠端主機金鑰擷取

ssh-keyscan 公用程式可用於以所需格式擷取遠端伺服器的主機金鑰。但是,請注意,如果伺服器使用非標準端口,則此方法不起作用。

使用AutoAddPolicy 自動新增主機金鑰(注意)

如果您想要pysftp要自動將新主機的主機金鑰新增至known_hosts,您可以使用AutoAddPolicsftp要自動將新主機的主機金鑰新增至known_hosts,您可以使用AutoAddPolicsfy類。不過,在建立信任之前,請務必謹慎行事並獨立驗證主機金鑰。

取得主機金鑰指紋進行指紋驗證

為了絕對安全,建議使用手動取得主機金鑰指紋並直接驗證,而不是依賴遠端擷取。

以上是使用 pysftp 或 Paramiko 時如何正確驗證 SSH 主機金鑰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板