【问题标题】:SFTP connection in Python, using a RSA-SSH 256 public keyPython 中的 SFTP 连接,使用 RSA-SSH 256 公钥
【发布时间】:2020-11-05 14:04:17
【问题描述】:

我正在尝试登录 SFTP 站点以提取一些数据。我见过引用 MD5 格式的指纹的代码(例如 - 52:14:a4:33:71:0a:b9:46:25:73:a0:96:94:b3:3b:03),但我需要发送的密钥格式不同(我认为是 SSH-256)。当我从 WinSCP 生成一个脚本以显示登录信息以及 RSA 指纹时,我得到以下信息:

sftp://login:password;fingerprint=ssh-rsa-ZnGWcuKoRO0Kv4uDjkdhOLHlnz9PSYfx04oGp9sE3d3=@ftp.address.com/

我已经修改了实际的密钥,所以它在帖子中只是虚构的。

任何人都可以帮助我通过这种类型的指纹需要 Python 包/代码吗?

【问题讨论】:

  • 这是XY problem - 没有人阻止您以任何您想要的格式获取密钥。实际上,使用 Paramiko/pysftp,您通常使用完整的公钥验证密钥,而不是使用任何格式的指纹。
  • 我想换一种说法,我如何获取 WinSCP 生成的有关我的 ftp 连接详细信息的信息,并在 Python 中使用它通过 sftp 进行连接?

标签: python ssh sftp


【解决方案1】:

你的问题不太清楚。我不明白,你为什么要使用来自 WinSCP 的信息来编写 Python 代码。

但如果你坚持:存在一个关于使用 MD5 指纹验证 pysftp/Paramiko 中的主机密钥的问题:

(我认为这是您在帖子中提到的问题)

在我对该问题的回答中的AutoAddPolicy 实现中,您可以将key.get_fingerprint() 替换为sha256(key.asbytes()).digest() 以获得SHA-256 指纹而不是MD5。您需要从hashlib module 导入sha56。


但我认为您应该只遵循标准的 Paramiko/pysftp 主机密钥验证,例如:

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 2020-10-28
    • 2014-11-27
    • 2021-10-18
    • 2022-06-15
    • 2011-06-17
    • 2013-09-10
    • 1970-01-01
    • 2012-05-20
    相关资源
    最近更新 更多