2013-02-19 24 views
5

Tôi đã có thể sử dụng lệnh ssh và lệnh phát hành trong máy chủ từ xa. Bây giờ tôi muốn scp tập tin từ máy chủ từ xa nhưng điều đó dường như không thể. Tôi hoàn toàn mới với python và Paramiko. Lỗi là quyền bị từ chối trong thư mục cục bộ của các cửa sổ darn của tôi. Các tập tin được cho là đến từ máy Mac. Bất kỳ ví dụ thực sự thực sự đơn giản khác tôi có thể sử dụng để scp tập tin từ một máy Linux từ xa đến máy Windows địa phương của tôi?scp sử dụng công việc không hoạt động của paramiko - ssh hoạt động tốt

import paramiko 


hostname = '192.xx.1.xx' 
password = 'pop123' 
username = "husbad2" 
port = 22 

mypath='C:\\Users\\handsonexpert\\Documents' 
remotepath='/Users/ihussain/testdir/file3.txt' 


t = paramiko.Transport((hostname, 22)) 
t.connect(username=username, password=password) 
sftp = paramiko.SFTPClient.from_transport(t) 
sftp.put(mypath, remotepath) 
+1

bạn nên sử dụng sftp.get nếu mục tiêu của bạn là để lấy các tập tin từ 192.168.1.132 vào mypath. –

Trả lời

8

Để lấy các tập tin từ một máy chủ từ xa vào một thư mục địa phương:

...... 
localpath='C:\\Users\\handsonexpert\\Documents\\file3.txt' 
remotepath='/Users/ihussain/testdir/file3.txt' 
...... 
sftp.get(remotepath, localpath) 
+4

Điều này đang sử dụng SFTP không scp ?? – danodonovan

+0

-bash: lỗi cú pháp gần mã thông báo không mong muốn 'remotepath, localpath 'có phải là lỗi hợp lệ không? – swateek

8

Bạn không sử dụng scp ở đây, nhưng SFTP (SFTPClient).

Nếu bạn được thiết lập bằng cách sử dụng scp, có thể hãy xem khách hàng paramiko scp này, có một ví dụ về cách sử dụng nó here.

Ngoài, ra khỏi lợi ích an ninh chung và phong cách lập trình, không cứng mã mật khẩu và người dùng của bạn thông tin, và đặc biệt là không bao giờ xuất bản chúng trong một diễn đàn công cộng như SO. Chúng tôi không cần chúng và bạn không cần phải đăng chúng.

+0

'SFTP' và' FTP' là các giao thức khác nhau. – Dikei