python - 如何使用 SSH key 通过 Paramiko 连接到 SFTP - Pageant

标签 python ssh paramiko private-key pageant

我正在尝试使用受密码保护的 SSH key 通过 Paramiko 连接到 SFTP。我已将 key 加载到 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)

最佳答案

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

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

您可以按照How to use Pageant with Paramiko on Windows?中的代码进行操作
尽管 allow_agent 默认为 True,但实际上代码没什么特别的

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

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

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

关于python - 如何使用 SSH key 通过 Paramiko 连接到 SFTP - Pageant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25399635/

相关文章:

python - 通过 SSH 连接到远程计算机并使用 Python 以 root 用户身份编辑文件

python - Paramiko 上传文件成功但为空

Python,组合,排列无重复

python - 使用现有函数,如何定义具有不同默认可选参数的新函数?

python - 什么决定了 Pandas 的最小和最大时间戳?

python - 如何创建新的 CSV 文件并将其存储在 Google Cloud Storage 中?

GitLab SSH key 停止工作

java - 如何用 Java 复制远程服务器上的文件?

python - Paramiko - 如何判断 SSHClient 当前连接到哪台主机?

linux - Rsync 到 Amazon Ec2 实例