Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在python中通过ssh进行scp_Python_Ssh_Scp - Fatal编程技术网

无法在python中通过ssh进行scp

无法在python中通过ssh进行scp,python,ssh,scp,Python,Ssh,Scp,问题陈述: 我有3个不同的轮毂(轮毂1、轮毂2和轮毂3)。我需要从Hub1->Hub2->Hub3复制文件(从Hub1到Hub3没有直接连接,我们只需要通过Hub2传输) 所以,这里我在Hub1中运行python脚本,并在脚本中执行ssh。通过这样做,我将在Hub2中实际执行(即,在Hub1中执行脚本,但在SSH之后,执行流在Hub2中),并尝试在那里执行scp,如下所示: ssh_stdin,ssh_stdout, ssh_stderr = ssh.exec_command("scp %s t

问题陈述:

我有3个不同的轮毂(轮毂1、轮毂2和轮毂3)。我需要从Hub1->Hub2->Hub3复制文件(从Hub1到Hub3没有直接连接,我们只需要通过Hub2传输)

所以,这里我在Hub1中运行python脚本,并在脚本中执行ssh。通过这样做,我将在Hub2中实际执行(即,在Hub1中执行脚本,但在SSH之后,执行流在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\u stdin

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

您可以使用以下内容:

import pysftp

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

如果我直接将文件从HUB2传输到HUB3,PYSTFP可以工作,这里真正的挑战是脚本在HUB1中运行,并通过SSH与HUB2进行虚拟交互,我们需要将文件传输到HUB3。您可以分两步完成:1)首先将脚本(包括用于从HUB2>HUB3复制的PYSTFP)复制到HUB2,2)然后通过ssh登录到HUB2并执行该脚本。