paramiko は、つい先日 Python 3.3 系に対応したことが全米で僕の中で話題の Python パッケージです。

3.x系で paramiko が使えないことにより Python のバージョンを 2.7 から上げられなかったプロダクトもあるのではないでしょうか。AnsibleFabricなど paramiko に依存していたライブラリも3系への対応が進むと期待されます。

2016-04-14 追記:結局 Fabric の 3.x 対応は進みませんでしたね。

paramiko インストール

pip インストール可能です。Python 3.4 でもインストールできることを確認しています。

pip install paramiko

pycrypto などがあわせて導入されます。

paramiko サンプルコード

paramiko で SFTP によるファイルアップロードを行います。

from paramiko import SSHClient, AutoAddPolicy

HOST = 'example.com'
PORT = 22
USER = 'test_user'
PRIVATE_KEY = '/home/test_usrer/.ssh/example.com.pem'

def upload(local_file, remote_file):

    ssh = SSHClient()
    ssh.set_missing_host_key_policy(AutoAddPolicy())

    ssh.connect(HOST, PORT, USER, key_filename=PRIVATE_KEY)
    sftp = ssh.open_sftp()

    sftp.put(local_file, remote_file)

    sftp.close()
    ssh.close()

if __name__ == '__main__':
    upload('test.txt', '/tmp/test.txt')

簡単でしょ!