Який самий пітонічний спосіб скроїти файл у 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 не є варіантом.
EDIT : Це дублікат того, як скопіювати файл на віддалений сервер Python за допомогою SCP або SSH? . Однак це питання не дає конкретного відповіді, який стосується ключів з 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.