Подтвердить что ты не робот

Paramiko SSHКлиент с SFTP

Как я могу сделать транспорт SFTP через SSHClient на удаленном сервере? У меня есть локальный хост и два удаленных хоста. Удаленные хосты - это резервный сервер и веб-сервер. Мне нужно найти на сервере резервного копирования необходимый файл резервной копии и поместить его на веб-сервер через SFTP. Как я могу заставить транспорт Paramiko SFTP работать с Paramiko SSHClient?

4b9b3361

Ответ 1

paramiko.SFTPClient

Пример использования:

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()

Ответ 2

Если у вас есть SSHClient, вы также можете использовать get_transpost() и использовать метод @leoluk:

import paramiko


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

sftp = client.open_sftp()

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