2

我正在开展一个项目,该项目要求我们通过 SFTP 将恶意文件上传到远程服务器,但我们在执行此操作时遇到了麻烦。我们尝试遵循此youtube 指南,但遇到了一些问题。

当我们运行脚本时,我们得到一个“没有这样的文件”错误,我们确定该文件存在并且我们已经为 python 脚本提供了正确的文件名称和位置。

这是我们现在拥有的脚本:

import pysftp as sftp

def sftpTry():
       try:
            s = sftp.Connection(host='babbage.cs.missouri.edu', username ='<username>', password = '<password>')

            remotepath = '~it3001s14grp1/videos/newVideo/new.avi'
            #localpath = '/etc/motion/capture/hello.txt'
            localpath = '/etc/motion/capture/06--2014-05-15---16-16-25.avi'
            s.put(localpath, remotepath)

            s.close()

    except Exception, e:
            print str(e)

sftpTry();
4

1 回答 1

1

您应该以正斜杠“/”开始您的远程路径。另外,检查您在远程路径中指定的目录。pwd当您登录服务器时(例如使用 ssh),您应该尝试在目录中执行操作。应该完全像那样指定远程路径。

尽管您在远程路径中确实有文件名,但如果您仅指定文件夹的名称,则会引发错误。

另一个提示是使用getpass而不是硬编码密码:

passwd = getpass.getpass()
s = sftp.Connection(host='<host>', username = '<username>', password = passwd)
于 2014-05-15T18:21:33.197 回答