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/#