2017-06-12 121 views
-1

問題陳述:無法使用scp通過ssh在Python

我有3個不同的集線器(HUB1,HUB2 & HUB3)。我需要從Hub1 - > Hub2 - > Hub3複製文件(沒有從Hub1到Hub3的直接連接,我們只需要通過Hub2進行傳輸)。

所以,在這裏我在Hub1中運行我的python腳本並在腳本中執行ssh。通過這樣做,我會在無形中(I,E腳本EXEC在HUB1但高管的流動是HUB2 SSH後),HUB2和嘗試做SCP那邊象下面這樣:在執行上面的命令有

ssh_stdin,ssh_stdout, ssh_stderr = ssh.exec_command("scp %s [email protected]:/home/tpath/tdir" %(imageName)) 

提示輸入密碼,不幸的是一切都被導入到ssh_stderr通道中。

如何通過ssh執行scp或如何執行ssh_stdin。

歡迎任何其他解決方案。提前致謝 。

回答

0

您可以使用pysftp如下:

import pysftp 

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

pysftp工作如果我直接從HUB2傳送文件到HUB 3,真正的challange是腳本HUB 1上運行,實際上通過SSH與HUB 2相互作用,我們需要傳輸文件到HUB3。 – Kumar

+0

您可以分兩步進行:1)首先將腳本(包括從HUB2> HUB3複製的pysftp)複製到HUB2,2),然後通過ssh登錄到HUB2並執行該腳本。 – Pankaj