Я бы использовал paramiko . Это безопасно быстро и очень просто. Как насчет этого?
Итак, начнем с импорта модуля и указания файла журнала:
import paramiko
paramiko.util.log_to_file('/tmp/paramiko.log')
Открываем транспорт SSH:
host = "example.com"
port = 22
transport = paramiko.Transport((host, port))
Далее мы хотим аутентифицироваться. Мы можем сделать это с помощью пароля:
password = "example101"
username = "warrior"
transport.connect(username = username, password = password)
Другой способ - использовать ключ SSH:
import os
privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
username = 'warrior'
transport.connect(username = username, pkey = mykey)
Теперь мы можем запустить SFTP-клиент:
sftp = paramiko.SFTPClient.from_transport(transport)
Теперь давайте перетащим файл из удаленного в локальную систему:
filepath = '/home/zeth/lenna.jpg'
localpath = '/home/zeth/lenna.jpg'
sftp.get(filepath, localpath)
Теперь давайте пойдем другим путем:
filepath = '/home/zeth/lenna.jpg'
localpath = '/home/zeth/lenna.jpg'
sftp.put(filepath, localpath)
Наконец, нам нужно закрыть SFTP-соединение и транспорт:
sftp.close()
transport.close()
Как это ?? Я должен дать кредит для этого в качестве примера.