使用 ppk 文件上传 Paramiko sftp [重复]

Posted

技术标签:

【中文标题】使用 ppk 文件上传 Paramiko sftp [重复]【英文标题】:Paramiko sftp upload with ppk file [duplicate] 【发布时间】:2021-04-26 16:36:37 【问题描述】:

我正在尝试使用 Paramiko Lib 创建一个 python 脚本,以在 sftp 上上传一个文件,该文件使用“ppk”文件和密码进行连接。

不幸的是,我无法破解文档或找到任何可以将 sftp 与 ppk 文件连接起来的东西。

其他详情: SFTP可以手动连接Filezilla,WinSCP不允许。

这是我只能使用的代码。请帮忙!

k = paramiko.RSAKey.from_private_key_file("/key.ppk")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect( hostname = "ftp.example.com", username = "user", pkey = k,passphrase="somephrase" )

这是最少的问题,我需要在连接后上传。

【问题讨论】:

您可以使用 puttygen 将 ppk 转换为 openssh 应该可以正常工作 嗯,好的,知道了。一直在找文档参考直接使用PPK文件,现在明白了,要先转换一下。谢谢各位 【参考方案1】:

我建议您将 .ppk 转换为 .pem ! 看 : Conver ppk to pem

然后像这样:

import paramiko
k = paramiko.RSAKey.from_private_key_file("mykey.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print "connecting"
c.connect( hostname = "www.host.com", username = "ubuntu", pkey = k )
print "connected"
commands = [ "/home/ubuntu/firstscript.sh", "/home/ubuntu/secondscript.sh" ]
for command in commands:
    print "Executing ".format( command )
    stdin , stdout, stderr = c.exec_command(command)
    print stdout.read()
    print( "Errors")
    print stderr.read()
c.close()

【讨论】:

好的,明白了。它必须先转换,然后使用转换后的文件。谢谢@moetaz

以上是关于使用 ppk 文件上传 Paramiko sftp [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用Paramiko库sftp远程主机上传下载文件

Paramiko-sftp上传和下载文件

Python Paramiko实现sftp文件上传下载以及远程执行命令

paramiko的简单使用(ssh远程执行脚本和上传文件)

paramiko上传文件到Linux

Python paramiko模块使用解析实现sftp