Paramiko的SSHClient与SFTP

2024-04-29 18:09:41 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在远程服务器上通过SSHClient进行SFTP传输?我有一个本地主机和两个远程主机。远程主机包括备份服务器和web服务器。我需要在备份服务器上找到必要的备份文件,并通过SFTP将其放到web服务器上。如何使Paramiko的SFTP传输与Paramiko的SSHClient一起工作?


Tags: 服务器webparamiko远程备份sftp备份文件sshclient
2条回答

^{}

示例用法:

import paramiko
paramiko.util.log_to_file("paramiko.log")

# Open a transport
host,port = "example.com",22
transport = paramiko.Transport((host,port))

# Auth    
username,password = "bar","foo"
transport.connect(None,username,password)

# Go!    
sftp = paramiko.SFTPClient.from_transport(transport)

# Download
filepath = "/etc/passwd"
localpath = "/home/remotepasswd"
sftp.get(filepath,localpath)

# Upload
filepath = "/home/foo.jpg"
localpath = "/home/pony.jpg"
sftp.put(localpath,filepath)

# Close
if sftp: sftp.close()
if transport: transport.close()

如果您有SSHClient,也可以使用open_sftp()

import paramiko


# lets say you have SSH client...
client = paramiko.SSHClient()

sftp = client.open_sftp()

# then you can use upload & download as shown above
...

相关问题 更多 >