paramiko是一个用于进行SSH2协议连接(客户机或服务器)的python库。可以支持所有主流的登录方法,同时也支持SFTP客户端和服务器模式。

# 安装
pip install paramiko

1)登录AWS EC2主机,并执行命令


import paramiko
import time


if __name__ == '__main__':
    # 创建ssh连接
    ssh = paramiko.SSHClient()
    # 自动添加未知主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 登录AWS EC2 主机
    ssh.connect('ip-xxxx',
                # EC2默认用户名
                username='ec2-user',
                # AWS 生成的密钥
                key_filename = "aws-ec2.pem")
    # 执行命令
    stdin, stdout, stderr=ssh.exec_command("ls /")
    # 等待1s,接收系统返回数据
    time.sleep(1)
    print stdout.readlines()
    # 关闭ssh连接
    ssh.close()

2)上传下载EC2文件


import paramiko
import time


if __name__ == '__main__':
    # 创建ssh连接
    ssh = paramiko.SSHClient()
    # 自动添加未知主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 登录AWS EC2 主机
    ssh.connect('ip-xxxx',
                # EC2默认用户名
                username='ec2-user',
                # AWS 生成的密钥
                key_filename = "aws-ec2.pem")
    # 创建sftp连接
    sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())
    # 上传文件
    sftp.put(local_file, server_file)
    # 下载文件
    sftp.get(server_path, local_file)
    ssh.close()

总体来说是非常适合自动化部署和操作云环境,对于AWS而言可以结合Boto3实现云平台搭建。

参考资料:

1.http://www.paramiko.org/

2.http://docs.paramiko.org/en/stable/#