2017-06-12 17 views
-1

問題文をSCPにできません:PythonでSSH経由で

私は3種類のハブの(HUB1、HUB2 & HUB3)を持っています。私はHub1→Hub2→Hub3からファイルをコピーする必要があります(Hub1からHub3への直接接続はなく、Hub2経由でのみ転送する必要があります)。

ここで、私はHub1でpythonスクリプトを実行していて、スクリプトでsshを実行しています。それが持っている上記のコマンドを実行する際

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

:これを行うことにより、私は、事実上、HUB2に(私は、電子スクリプトHUB1で幹部が、幹部の流れは、SSH後HUB2である)、そこに以下のような上でscpコマンドをやろうとしているだろう残念ながら、すべてがssh_stderrチャネルに向けられています。

どのようにsshを介してscpを実行できますか、どのようにssh_stdinを与えることができますか。

その他の解決方法は歓迎します。前もって感謝します 。

答えて

0

あなたは、次のようpysftpを使用することができます。私は直接HUB 3にHUB2からファイルを転送していた場合

import pysftp 

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

pysftpは動作しますが、ここで本当のchallangeは、スクリプトでは、HUB 1で実行され、事実上、SSH経由HUB 2と相互作用し、 HUB3にファイルを転送する必要があります。 – Kumar

+0

次の2つの手順で実行できます。1)まずスクリプト(HUB2> HUB3からコピーするためのpysftpを含む)をHUB2にコピーし、2)次にssh経由でHUB2にログインし、そのスクリプトを実行します。 – Pankaj

関連する問題