使用 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章