基本上,我正在尝试运行Python脚本(使用Paramiko)以通过SSH上传文件。我尝试了几种不同的方法,包括将URL更改为我的本地文件,以便它是一个绝对路径而不是相对路径,但我总是得到一个" IOERROR:[Errno2]没有这样的文件错误,不管我是什么做。这是我的代码:
import os
import paramiko
server = "sample_server.net"
ssh = paramiko.SSHClient()
ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh",
"known_hosts")))
ssh.connect(server, username="cb", password="pass")
sftp = ssh.open_sftp()
sftp.put("test_upload.xml", "/home/sample/root/cb")
sftp.close()
ssh.close()
有没有人遇到过这个问题,或者对这个问题有什么了解?我绝对相信文件会退出,所以我不确定为什么它无法找到。谢谢。
答案 0 :(得分:0)
尝试在remotepath参数中添加文件名。从用于放置的API文档中:
“ 远程路径(str) – SFTP服务器上的目标路径。请注意,应包含文件名。仅指定目录可能会导致错误。”
http://docs.paramiko.org/en/2.4/api/sftp.html#paramiko.sftp_client.SFTPClient
import os
import paramiko
server = "sample_server.net"
ssh = paramiko.SSHClient()
ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh", "known_hosts")))
ssh.connect(server, username="cb", password="pass")
sftp = ssh.open_sftp()
sftp.put("test_upload.xml", "/home/sample/root/cb/test_upload.xml")
sftp.close()
ssh.close()
这样做对我有用。