Какой самый питонный способ scp файла в Python? Единственный маршрут, который мне известен, это
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
это взлом, который не работает вне Linux-подобных систем, и которому нужна помощь от модуля Pexpect, чтобы избежать запросов пароля, если у вас уже не установлен SSH без пароля для удаленного хоста.
Я знаю о Twisted conch
, но я бы предпочел избегать реализации scp самостоятельно через низкоуровневые ssh-модули.
Мне известен paramiko
модуль Python, который поддерживает SSH и SFTP; но он не поддерживает SCP.
Справочная информация: я подключаюсь к маршрутизатору, который не поддерживает SFTP, но поддерживает SSH / SCP, поэтому SFTP не вариант.
РЕДАКТИРОВАТЬ : Это дубликат Как скопировать файл на удаленный сервер в Python с использованием SCP или SSH? , Тем не менее , этот вопрос не дает конкретного ответа scp, который имеет дело с ключами из Python. Я надеюсь на способ запуска кода вроде
import scp
client = scp.Client(host=host, user=user, keyfile=keyfile)
# or
client = scp.Client(host=host, user=user)
client.use_system_keys()
# or
client = scp.Client(host=host, user=user, password=password)
# and then
client.transfer('/etc/local/filename', '/etc/remote/filename')
scp
концов фактически вызываетscp
командную строку, которая работает только на * nix.