paramiko是基于python实现的ssh2远程安全连接,支持认证及密钥方式。可以实现远程命令执行,文件传输、中间ssh代理等功能。
pip install paramiko或 easy_install paramiko
paramiko依赖第三方的Crypto,Ecdsa和pyhton-devel
connect():远程ssh连接并作校验
参数:
exec_command():用于远程执行命令,该命令的输入与输出流为标准输入、标出输出、标准错误输出
参数:
load_system_host_key():装载系统公钥,默认为~/.ssh/known_hosts
参数:
set_missing_host_key_policy():设置连接的远程主机没有本地主机密钥或HostKeys对象时的策略,目前支持三种,也就是参数只有三个。
参数:
用法: set_missing_host_key_policy(paramiko.AutoAddPolicy())
SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传、下载。
方法:
使用ssh运行命令,采用明文密码认证方式,通过exec_command()方法执行命令,示例如下
#!/usr/bin/env python
#coding=utf-8
import paramiko
hostname='172.31.101.61'
username='root'
password='abc@123'
paramiko.util.log_to_file('syslogin.log') #发送paramik日志到syslogin.log文件
ssh=paramiko.SSHClient() #创建一个ssh客户端client对象
ssh.load_system_host_keys() #获取客户端host_keys,默认~/.ssh/known_hosts,非默认路径需指定
ssh.connect(hostname=hostname,username=username,password=password) #创建ssh连接
stdin,stdout,stderr=ssh.exec_command('free -m') #调用远程执行命令方法exec_command()
print stdout.read() #打印命令执行结果,得到python列表形式,可以用stdout.readlinses()
ssh.close() #关闭ssh连接