在Python中scp文件的最Python化的方法是什么?我唯一知道的路线是
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
这是一种黑客,在类linux系统之外不能工作,需要Pexpect模块的帮助来避免密码提示,除非您已经为远程主机设置了无密码SSH。
我知道Twisted的conch
,但我更倾向于避免自己通过低级ssh模块实现scp。
我知道paramiko
,一个Python模块,支持SSH和SFTP;但它不支持SCP。
背景:我正在连接到一个不支持SFTP但支持SSH/SCP的路由器,所以SFTP不是一个选项。
< p > 编辑: 这是如何在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')