Apa cara paling pythonic untuk scp file dengan Python? Satu-satunya rute yang saya ketahui adalah
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
yang merupakan peretasan, dan yang tidak berfungsi di luar sistem seperti Linux, dan yang membutuhkan bantuan dari modul Pexpect untuk menghindari permintaan kata sandi kecuali Anda sudah menyiapkan SSH tanpa kata sandi yang diatur ke host jarak jauh.
Saya mengetahui Twisted's conch
, tetapi saya lebih suka menghindari mengimplementasikan scp sendiri melalui modul ssh tingkat rendah.
Saya tahu paramiko
, modul Python yang mendukung SSH dan SFTP; tetapi tidak mendukung SCP.
Latar Belakang: Saya tersambung ke router yang tidak mendukung SFTP tetapi mendukung SSH / SCP, jadi SFTP bukan pilihan.
EDIT : Ini adalah duplikat dari Bagaimana cara menyalin file ke server jauh di Python menggunakan SCP atau SSH? . Namun , pertanyaan itu tidak memberikan jawaban khusus-scp yang berhubungan dengan kunci dari dalam Python. Saya berharap cara menjalankan kode sejenisnya
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
berakhir benar-benar memanggilscp
baris perintah yang hanya berfungsi pada * nix.