我正在尝试使用密码保护的SSH密钥通过Paramiko连接到SFTP。我已将密钥加载到Pageant(据我理解,Paramiko支持该密钥),但无法获取它来解密我的私钥。
我在这里找到了引用的示例,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
。
但要注意,你不必须加载关键在所有,使用时佳丽。这就是使用身份验证代理的重点。但是只有SSHClient
该类支持选美。本Transport
类不上自己的。
您可以按照如何在Windows上将Pageant与Paramiko一起使用中的代码进行操作。
虽然因为allow_agent
是True
在默认情况下,实际上是没有什么特别的关于代码。
连接并通过身份验证后,请使用SSHClient.open_sftp
方法获取您的实例SFTPClient
。
ssh = paramiko.SSHClient()
ssh.connect(host, username='user', allow_agent=True)
sftp = ssh.open_sftp()
您还需要验证主机密钥:
Paramiko“未知服务器”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句