Was ist die pythonischste Art, eine Datei in Python zu scpen? Der einzige Weg, den ich kenne, ist
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
Dies ist ein Hack, der außerhalb von Linux-ähnlichen Systemen nicht funktioniert und der Hilfe vom Pexpect-Modul benötigt, um Kennwortabfragen zu vermeiden, es sei denn, Sie haben bereits kennwortloses SSH auf dem Remote-Host eingerichtet.
Ich bin mir Twisted's bewusst conch
, aber ich würde es vorziehen, die Implementierung von scp selbst über Low-Level-SSH-Module zu vermeiden.
Mir ist bekannt paramiko
, ein Python-Modul, das SSH und SFTP unterstützt. SCP wird jedoch nicht unterstützt.
Hintergrund: Ich verbinde mich mit einem Router, der SFTP nicht unterstützt, aber SSH / SCP unterstützt, sodass SFTP keine Option ist.
BEARBEITEN : Dies ist ein Duplikat von Wie kopiere ich eine Datei mit SCP oder SSH auf einen Remote-Server in Python? . Diese Frage gibt jedoch keine scp-spezifische Antwort, die sich mit Schlüsseln aus Python befasst. Ich hoffe auf eine Möglichkeit, Code so ähnlich auszuführen
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
tatsächlich diescp
Befehlszeile aufruft , die nur unter * nix funktioniert.