首页 > 后端开发 > Python教程 > 使用 pysftp 或 Paramiko 时如何正确验证 SSH 主机密钥?

使用 pysftp 或 Paramiko 时如何正确验证 SSH 主机密钥?

DDD
发布: 2024-12-04 15:20:12
原创
925 人浏览过

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,可以使用AutoAddPolicy类。不过,在建立信任之前,请务必谨慎行事并独立验证主机密钥。

获取主机密钥指纹进行指纹验证

为了绝对安全,建议使用手动获取主机密钥指纹并直接验证,而不是依赖远程检索。

以上是使用 pysftp 或 Paramiko 时如何正确验证 SSH 主机密钥?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板