我正在尝试使用受密码保护的 SSH 密钥通过 Paramiko 连接到 SFTP。我已将密钥加载到 Pageant 中(据我所知,Paramiko 支持该密钥),但我无法用它来解密我的私钥。
我找到了这个例子here https://stackoverflow.com/questions/8490228/how-to-use-pageant-with-paramiko-on-windows引用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)
使用以下命令加载加密密钥时,您必须提供密码RSAKey.from_private_key_file https://docs.paramiko.org/en/latest/api/keys.html#paramiko.pkey.PKey.from_private_key_file.
尽管请注意你这样做not必须加载密钥at all,使用选美时。这就是使用身份验证代理的意义所在。但只有SSHClient class https://docs.paramiko.org/en/latest/api/client.html支持选美。这Transport
类本身并没有。
您可以按照以下代码进行操作如何在 Windows 上将 Pageant 与 Paramiko 一起使用? https://stackoverflow.com/q/8490228/850848
虽然作为allow_agent
is True
默认情况下,实际上有没什么特别的关于代码。
连接并通过身份验证后,使用SSHClient.open_sftp method https://docs.paramiko.org/en/latest/api/client.html#paramiko.client.SSHClient.open_sftp获取您的实例SFTPClient
.
ssh = paramiko.SSHClient()
ssh.connect(host, username='user', allow_agent=True)
sftp = ssh.open_sftp()
您还需要验证主机密钥:
Paramiko“未知服务器” https://stackoverflow.com/q/10670217/850848#43093883
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)