首頁 > 後端開發 > Python教學 > 使用pysftp時如何安全地驗證主機金鑰?

使用pysftp時如何安全地驗證主機金鑰?

Patricia Arquette
發布: 2024-12-12 18:15:11
原創
902 人瀏覽過

How Can I Verify Host Keys Securely When Using pysftp?

使用pysftp 驗證主機金鑰

使用pysftp 建立SSH 連線時,必須根據可信任來源驗證伺服器的主機金鑰以確保伺服器的主機金鑰以確保安全通訊。預設情況下,pysftp 嘗試從「~/.ssh/known_hosts」檔案載入已知主機金鑰。但是,如果伺服器的主機金鑰儲存在不同的位置,例如 PuTTY 使用的註冊表,則協調這種差異至關重要。

pysftp 中的主機金鑰驗證選項

pysftp提供了多種管理主機金鑰的選項驗證:

  • 從檔案載入主機金鑰:

    • 使用cnopts.knownhosts屬性指定known_hosts 檔案的路徑。這將從指定檔案載入主機金鑰。
  • 使用自訂主機金鑰:

    • 建立HostKeys 物件並使用add() 方法新增預期的主機密鑰。這允許您手動指定要驗證的主機金鑰。
  • 停用主機金鑰驗證:

    • 設定 cnopts .hostkeys 為 None 以停用主機驗證。但是,不建議這樣做,因為它會損害安全性。

推薦方法

為了維護安全並確保正確的主機金鑰驗證,最好從可信任來源載入已知的主機密鑰。如果主機金鑰儲存在登錄中,請考慮使用 ssh-keyscan 等工具來檢索必要的資訊並以適當的格式儲存它。

範例程式碼

以下是示範自訂主機金鑰的使用的範例:

import pysftp as sftp

cnopts = pysftp.CnOpts()
host_key = paramiko.RSAKey(data=b'YOUR_HOST_KEY')  # Replace with the server's host key
cnopts.hostkeys.add('my_server.com', 'ssh-rsa', host_key)

with sftp.Connection('my_server.com', username='root', password='*********', cnopts=cnopts) as sftp:
    # Perform file transfer operations, etc.
登入後複製

透過仔細處理主機金鑰驗證,您可以建立安全的主機金鑰驗證。 SSH 連接並防止中間人攻擊。

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

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