如何在paramiko的ssh连接中将文件传输到ssh服务器?

时间:2012-07-16 07:02:16

标签: python ssh sftp paramiko

我正在使用Python的paramiko数据包来保持与服务器的ssh连接:

s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect("xxx.xxx.xxx.xxx",22,username=xxx,password='',timeout=4)

我想使用这个ssh-connection将文件传输到ssh服务器,我该怎么办?

就像使用一样 scp a-file xxx@xxx.xxx.xxx.xxx:filepath 命令?

2 个答案:

答案 0 :(得分:18)

试试这个:

s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect("xxx.xxx.xxx.xxx",22,username=xxx,password='',timeout=4)

sftp = s.open_sftp()
sftp.put('/home/me/file.ext', '/remote/home/file.ext')

答案 1 :(得分:0)

这是https://www.programcreek.com/python/example/4561/paramiko.SSHClient

中的另一个示例
def copy_file(hostname, port, username, password, src, dst):
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    print (" Connecting to %s \n with username=%s... \n" %(hostname,username))
    t = paramiko.Transport(hostname, port)
    t.connect(username=username,password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    print ("Copying file: %s to path: %s" %(src, dst))
    sftp.put(src, dst)
    sftp.close()
    t.close()