2015-04-08 17 views
6

Tôi đang cố gắng tạo tập lệnh tải xuống (hoặc tải lên) tệp qua ssh, vì cổng ftp bị tắt khỏi tường lửa. Đây là tập lệnh của tôi:Tải xuống tệp qua SSH bằng cách sử dụng Python

import os 
import paramiko 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect('10.170.21.93', username="abhishek", password="@bhishek$") 
sftp = ssh.open_sftp() 
localpath = 'abc.txt' 
remotepath = '/opt/crestelsetup/patchzip' 
sftp.put(localpath, remotepath) 
sftp.close() 
ssh.close() 

Điều này cho tôi "IOError: Failure", có thể giúp gì không?

+0

có thể lặp lại http://stackoverflow.com/questions/3091326/put-in-sftp-using-paramiko – jester112358

+0

Các bài trùng lặp không có kịch bản làm việc. –

+0

Không, nhưng nó có cùng Lỗi với bạn và câu trả lời được chấp nhận làm giải pháp cho vấn đề. – jester112358

Trả lời

4

Bạn cần phải xác định một cách rõ ràng con đường từ xa:

import os 
import paramiko 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect('10.170.21.93', username="abhishek", password="@bhishek$") 
sftp = ssh.open_sftp() 
localpath = 'abc.txt' 
remotepath = '/opt/crestelsetup/patchzip/abc.txt' 
sftp.put(localpath, remotepath) 
sftp.close() 
ssh.close() 
+0

Vui lòng không đề nghị mọi người sử dụng 'AutoAddPolicy', mà không giải thích hậu quả! Bạn đang mất đi sự bảo vệ chống lại [những đòn tấn công trung gian] (https://en.wikipedia.org/wiki/Man-in-the-middle_attack)! Vẫn +1 –

1

Chỉ cần sửa đổi đường dẫn đích để bao gồm tên tập tin như well.Try thay đổi.

remotepath = '/opt/crestelsetup/patchzip' 

để

remotepath = '/opt/crestelsetup/patchzip/abc.txt' 
Các vấn đề liên quan