2013-02-19 86 views
5

我已经能够在远程服务器中使用ssh和issue命令。现在我想从远程服务器上scp文件,但这看起来像是不可能的。我对python和Paramiko完全陌生。该错误是在我的本地darn窗口目录中拒绝了权限。这些文件应该来自Mac。任何其他真的很简单的例子,我可以用来从远程Linux机器scp文件到我的本地Windows机器?scp使用paramiko不工作 - SSH工作正常

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

你应该使用sftp.get如果你的目的是检索192.168.1.132的文件到mypath中。 – 2013-02-19 09:56:49

回答

8

检索从远程主机文件到本地目录:

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

这是使用SFTP而不是scp? – danodonovan 2013-02-19 11:13:52

+0

-bash:意外标记附近的语法错误'remotepath,localpath'是否是一个有效的错误? – swateek 2018-02-22 06:34:34

8

您没有使用scp这里,但SFTPSFTPClient)。

如果你使用scp,也许看看这个paramiko scp客户端,有一个如何使用它的例子here

除此之外,出来的一般安全利益和编程风格,硬编码密码和用户凭据,尤其是从未它们发布在一个公开论坛,像这样。我们不需要他们,你不需要发布他们。

+0

'SFTP'和'FTP'是不同的协议。 – Dikei 2013-02-19 10:54:40