无法在python中scp over ssh

时间:2017-06-12 07:38:22

标签: python ssh scp

问题陈述:

我有3个不同的中心(Hub1,Hub2和Hub3)。我需要从Hub1复制文件 - > Hub2 - > Hub3(没有从Hub1到Hub3的直接连接,我们只需要通过Hub2进行传输)。

所以,我在Hub1中运行我的python脚本并在脚本中执行ssh。通过这样做,我将在Hub2中虚拟地(我,Hub1中的脚本执行,但是在SSH之后的exec流程在Hub2中)并尝试在那里执行scp,如下所示:

ssh_stdin,ssh_stdout, ssh_stderr = ssh.exec_command("scp %s tusrname@100.101.102.3:/home/tpath/tdir" %(imageName))

执行上述命令时,必须提示输入密码,不幸的是,所有内容都指向ssh_stderr频道。

我如何在ssh上执行scp或如何提供ssh_stdin。

欢迎任何其他解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下pysftp

import pysftp

with pysftp.Connection('100.101.102.3',username='username', password='passwd') as sftp:
        sftp.put('filename')