【问题标题】:How to connect to SFTP through Paramiko with SSH key - Pageant如何使用 SSH 密钥通过 Paramiko 连接到 SFTP - Pageant
【发布时间】:2014-10-13 12:15:46
【问题描述】:

我正在尝试使用受密码保护的 SSH 密钥通过 Paramiko 连接到 SFTP。我已将密钥加载到 Pageant(据我所知 Paramiko 支持),但我无法让它解密我的私钥。

我发现这个示例here 引用了allow_agent=True,但这似乎不是可以与SFTPClient 一起使用的参数。

谁能建议是否可以通过这种方式与 Paramiko 和 Pageant 合作?

这是我目前的代码 - 引发 PasswordRequiredException

privatekeyfile = 'path to key'
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
transport = paramiko.Transport(('host', 'port'))
transport.connect('username',pkey = mykey)
sftp = paramiko.SFTPClient.from_transport(transport)

【问题讨论】:

    标签: python ssh paramiko private-key pageant


    【解决方案1】:

    在使用RSAKey.from_private_key_file 加载加密密钥时,您必须提供密码。

    请注意,在使用选美比赛时,您根本不需要加载密钥。这就是使用身份验证代理的意义所在。但只有SSHClient class 支持选美。 Transport 类本身不会。

    您可以关注How to use Pageant with Paramiko on Windows?中的代码
    虽然默认情况下allow_agentTrue,但实际上没有什么特别的代码。

    连接并通过身份验证后,使用SSHClient.open_sftp method 获取SFTPClient 的实例。

    ssh = paramiko.SSHClient()
    ssh.connect(host, username='user', allow_agent=True)
    sftp = ssh.open_sftp()
    

    您还需要验证主机密钥:
    Paramiko "Unknown Server"

    【讨论】:

      猜你喜欢
      • 2021-09-28
      • 2023-03-16
      • 2017-04-17
      • 2012-01-13
      • 2012-07-01
      • 1970-01-01
      • 2021-12-17
      • 2014-12-30
      相关资源
      最近更新 更多