2014-06-18 2 views
0

SFTP를 통해 원격 서버에 파일을 전송하는 스크립트를 구현해야합니다. 필자는 paramiko 라이브러리를 사용하여 Python으로 스크립트를 구현했습니다. 집 컴퓨터에서 문제없이 직접 연결을 할 수는 있지만 직장에서는 프록시 서버를 통해 연결해야합니다.Python에서 ProxyCommand 객체를 만들 수 없습니다.

유용한 게시글을 찾았습니다. Python ssh using Tor proxy 구현을 잘 설명했지만 ProxyCommand를 만들 수 없어서 붙어 있습니다.

내 (의사) 코드 : 코드가 ProxyCommand의 창조에 종료

import paramiko 

cmd = 'ssh proxy.server nc %h %p' 

proxy = paramiko.ProxyCommand(cmd) 

try: 
    client = paramiko.SSHClient() 
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    client.connect('remote.server', username='ABC', password='123', sock=proxy) 
    client.close() 
except Exception as e: 
    print(str(e)) 
finally: 
    client.close() 

(3 호선) 다음 역 추적으로 인해에 FileNotFoundError :

Traceback (most recent call last): 
    File "C:\Users\zzz\Documents\SFTPtest.py", line 3, in <module> 
    proxy = paramiko.ProxyCommand(cmd) 
    File "C:\Python33\lib\site-packages\paramiko-1.14.0-py3.3.egg\paramiko\proxy.py", line 49, in __init__ 
    self.process = Popen(self.cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) 
    File "C:\Python33\lib\subprocess.py", line 820, in __init__ 
    restore_signals, start_new_session) 
    File "C:\Python33\lib\subprocess.py", line 1112, in _execute_child 
    raise WindowsError(*e.args) 
FileNotFoundError: [WinError 2] The system cannot find the file specified 

사람이 무엇을 조언 해 줄 수 있습니다 내가 잘못하고있는 것일까? 실제 명령이 잘못되었거나 제 구성에서 누락 된 것이있을 수 있습니까? Windows 7에서 Python 3.3.2를 실행합니다.

답변

0

저는 전문가가 아닙니다. paramiko를 사용하기 시작했습니다. 그러나 ssh를 사용할 때 비슷한 오류가 발생했으며 ssh 실행 파일의 전체 경로를 지정하여 해결되었습니다. 제 경우에는 리눅스 였기 때문에 /usr/bin/ssh을 사용했습니다. Windows를 사용하고있는 것을 볼 수 있습니다 - ssh 실행 파일의 경로를 알아 내서 ssh 대신 그 파일을 사용할 수 있습니까?

관련 문제