paramiko是实现ssh2远程安全连接的Python封装。支持认证和密钥方式,可以实现远程命令执行、文件传输等功能,对比pexpect封装的层次更高安全性高。
1、paramiko的安装
paramiko依赖第三方的Ecdsa,Crypto和Python开发工具包pyhton-devel
安装出现时出现error: command 'gcc' failed with exit status 1是因为没有Python开发工具包。
2、paramiko有两个核心类SSHClient和SFTPClient
SSHClient是ssh服务器会话的高级表示,该类封装传输、通道、和SFTPClient的校验、建立的方法。
2.1>connect方法
connect(self,hostname,port=22,username=None,password=None,pkey=None,key_filename=None,timeout=None,allow_agent=True,look_for_keys=True,compress=False)
其中pkey:私钥方式用于身份验证;key_filename一个文件名或者文件名的列表用于私钥的身份验证;allow_agent设置问False时用于禁用链接到ssh代理;look_for_keys为False时禁用在~/.ssh中搜索私钥文件;compress为True时是打开压缩。
2.2>exec_command
exec_command(self,command,bufsize=-1)
2.3>load_system_host_keys
加载本地公钥校验文件,默认是~/.ssh/known_hosts
load_system_host_keys(self,filename=Noe)
2.4>set_missing_host_key_policy
设置连接的远程主机没有本地主机密钥或者HostKeys对象时的策略,目前支持三种:AutoAddPolicy,RejectPolicy,WarningPolicy
AutoAddPolicy:自动添加主机名和主机密钥到本地HostKeys对象,并将其保存,不依赖load_system_host_keys()的配置
RejectPolicy:自动拒接未知的主机名和密钥,依赖load_system_host_keys()的配置
WarningPolicy:用于记录一个未知的主机密钥的Python警告,并接受它,与AutoAddPolicy相似只是未知主机会有警告信息。