¿Cómo scp en python?

¿Cuál es la forma más pitónica de scp un archivo en Python? La única ruta que conozco es

os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )

que es un truco, y que no funciona fuera de los sistemas similares a Linux, y que necesita ayuda del módulo Pexpect para evitar solicitudes de contraseña a menos que ya haya configurado SSH sin contraseña en el host remoto.

Soy consciente de Twisted'sconch, pero preferiría evitar implementar scp a través de módulos ssh de bajo nivel.

Soy consciente deparamiko, un módulo de Python que admite ssh y sftp; pero no es compatible con scp.

Antecedentes: me estoy conectando a un enrutador que no admite sftp pero que admite ssh / scp, por lo que sftp no es una opción.

EDITAR: Este es un duplicado de¿Cómo copiar un archivo a un servidor remoto en Python usando SCP o SSH?. sin embargo, esa pregunta no da una respuesta específica de scp que se ocupe de claves desde python. Espero una forma de ejecutar código como

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')

Respuestas a la pregunta(13)

Su respuesta a la pregunta