2017-04-02 14 views
1

基本的に、私はPythonでネストされたSSH sshセッションを介してscpを実行することに問題があります。私はparamikoを使用して、ローカルマシンから別のサーバにSSHを確立しました。これをAAとします。私はファイルをscpしたい、fとサーバBと呼ぶ。両方のサーバーに同じパスワードが設定されています。これはコードです:Pythonのparamikoでネストされたsshセッションのscp

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect(hostname=hostname, username=username, password=password) 

chan = ssh.invoke_shell()  
chan.send('scp f [email protected]:.') 
buff = '' 
while not buff.endswith('\'s password: '): 
    resp = chan.recv(9999) 
    buff += resp 

chan.send(password + '\n') 
buff = '' 
while not buff.endswith('$ '): 
    resp = chan.recv(9999) 
    buff += resp 

これはなぜ機能しないのか分かりません。どんな助けもありがとう、ありがとう!

答えて

0

PyCharmでこれを実行していますか?どの時点で失敗するのですか、エラーが出ますか?

buff.endswith('\'s password: '): 

の文字列は、sshセッションで出力されているものと正確に一致しない可能性があります。それ以外は正しいように見えます。 buff.endswithでブレークポイントを設定し、実際にbuff内のwhatsを検査し、あなたの文字列と一致するかどうかを確認するだけでなく、あなたのパスワードがそこにある改行文字で有効であるかどうかを確認することをお勧めします。

関連する問題