Pythonでファイルをscpする最もpythonicな方法は何ですか? 私が知っている唯一のルートは
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')