问题陈述:
我有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。
欢迎任何其他解决方案。提前谢谢。
答案 0 :(得分:0)
您可以使用以下pysftp:
import pysftp
with pysftp.Connection('100.101.102.3',username='username', password='passwd') as sftp:
sftp.put('filename')