Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件上载到远程服务器的Python脚本_Python_Upload_Sftp_Pysftp - Fatal编程技术网

将文件上载到远程服务器的Python脚本

将文件上载到远程服务器的Python脚本,python,upload,sftp,pysftp,Python,Upload,Sftp,Pysftp,我正在从事一个项目,该项目要求我们通过SFTP将恶意文件上传到远程服务器,但我们在这方面遇到了麻烦。我们试图遵循这一点,但我们遇到了一些问题 当我们运行脚本时,我们得到了一个“没有这样的文件”错误,并且我们确信该文件存在,并且我们已经为python脚本提供了正确的文件名和位置 这是我们现在的脚本: import pysftp as sftp def sftpTry(): try: s = sftp.Connection(host='babbage.cs.m

我正在从事一个项目,该项目要求我们通过SFTP将恶意文件上传到远程服务器,但我们在这方面遇到了麻烦。我们试图遵循这一点,但我们遇到了一些问题

当我们运行脚本时,我们得到了一个“没有这样的文件”错误,并且我们确信该文件存在,并且我们已经为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();
将pysftp导入为sftp
def sftpry():
尝试:
s=sftp.Connection(host='babbage.cs.missouri.edu',用户名='',密码='')
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(本地路径、远程路径)
s、 关闭()
除例外情况外,e:
打印str(e)
sftpTry();

远程路径应以正斜杠“/”开头。此外,请检查您在remotepath中指定的目录。当您登录到服务器时,应该尝试在目录中执行
pwd
(比如使用ssh)。远程路径的指定方式应与此完全相同

虽然您在远程路径中有文件名,但如果您只指定文件夹的名称,则会引发错误

另一个技巧是使用
getpass
而不是硬编码密码:

passwd = getpass.getpass()
s = sftp.Connection(host='<host>', username = '<username>', password = passwd)
passwd=getpass.getpass()
连接(主机=“”,用户名=“”,密码=passwd)

^您应该使用ssh key gen而不是密码创建公钥和私钥