Pythonでファイルをscpする最もPython的な方法は何ですか?私が知っている唯一のルートは
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) )
これはハックであり、Linuxライクなシステムの外部では機能しません。また、リモートホストにパスワードなしのSSHが設定されていない限り、パスワードプロンプトを回避するためにPexpectモジュールの支援が必要です。
Twistedを知っていますがconch
、低レベルのsshモジュールを介してscpを自分で実装することは避けたいと思います。
paramiko
SSHとSFTPをサポートするPythonモジュールであるを知っています。ただし、SCPはサポートされていません。
背景:SFTPはサポートしていませんが、SSH / SCPはサポートしているルーターに接続しているため、SFTPは選択できません。
編集:これはSCPまたはSSHを使用してPythonでファイルをリモートサーバーにコピーする方法の複製ですか?。 ただし、その質問では、Python内からのキーを処理するscp固有の回答は提供されません。私はある種のコードを実行する方法を望んでいます
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
コマンドラインを実際に呼び出すのは、多くのコードです。