使用Python通过SSH下载文件

Abh*_* py 7 python ssh

我正在尝试制作一个脚本,通过ssh下载(或上传)文件,因为从防火墙禁用了ftp端口.这是我的脚本:

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()
Run Code Online (Sandbox Code Playgroud)

这给了我"IOError:失败",任何人都可以帮忙吗?

Ale*_*lex 7

您需要显式指定远程路径:

import os
import paramiko 
ssh = paramiko.SSHClient()
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()
Run Code Online (Sandbox Code Playgroud)

  • 请不要在不解释后果的情况下建议人们使用`AutoAddPolicy`!您正在失去对 [中间人攻击](https://en.wikipedia.org/wiki/Man-in-the-middle_attack) 的保护!+1 反正 (3认同)
  • 另外,您是否想要**下载**(根据问题标题),您想要“获取”,**而不是**“放置”。 (2认同)