使用 pysftp 验证主机密钥
使用 pysftp 建立 SSH 连接时,必须根据可信来源验证服务器的主机密钥以确保安全通信。默认情况下,pysftp 尝试从“~/.ssh/known_hosts”文件加载已知主机密钥。但是,如果服务器的主机密钥存储在不同的位置,例如 PuTTY 使用的注册表,则协调这种差异至关重要。
pysftp 中的主机密钥验证选项
pysftp 提供了多种管理主机密钥的选项验证:
从文件加载主机密钥:
使用自定义主机密钥:
禁用主机密钥验证:
推荐方法
为了维护安全并确保正确的主机密钥验证,最好从可信来源加载已知的主机密钥。如果主机密钥存储在注册表中,请考虑使用 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中文网其他相关文章!