网络自动化运维教程 课件 项目3 使用paramiko实现网络设备自动化巡检_第1页
网络自动化运维教程 课件 项目3 使用paramiko实现网络设备自动化巡检_第2页
网络自动化运维教程 课件 项目3 使用paramiko实现网络设备自动化巡检_第3页
网络自动化运维教程 课件 项目3 使用paramiko实现网络设备自动化巡检_第4页
网络自动化运维教程 课件 项目3 使用paramiko实现网络设备自动化巡检_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目3使用paramiko实现网络设备自动化巡检项目3使用paramiko实现网络设备自动化巡检3.1Paramiko模块介绍3.2Paramiko模块的类3.3任务实施3.1PythonParamiko模块SSH是一个是一种用于在不安全网络上进行安全远程登录和实现其他安全网络服务的协议,OpenSSH是其中一个开源实现。Paramiko是Python实现SSHv2协议的模块,它支持口令认证和公钥认证两种方式。可以实现安全的远程命令执行、文件传输等功能。Paramiko可以使用SSHv2远程连接到Linux服务器或网络设备,查看上面的日志状态,批量配置远程服务器或设备,文件上传,文件下载等1Paramiko模块-介绍3.1PythonParamiko模块Paramiko模块中有很多组件,可以归纳为:常用协议类和密钥相关类。常用协议类主要有以下组件:最常用的两个类为SSHClient类和SFTPClient类,分别提供SSH和SFTP功能。2Paramiko模块–组件Channel类:该类用于创建在SSHTransport上的安全通道。Message类:SSHMessage是字节流。该类对字符串、整数等进行编码。Packetizer类:数据包处理类。Transport类:该类用于在现有套接字或类套接字对象上创建一个Transport会话对象。SFTPClient类:该类通过一个打开的SSHTransport会话创建SFTP会话通道并执行远程文件操作。SSHClient类:该类是与SSH服务器会话的高级表示,集成了Transport,Channel和SFTPClient类。3.1PythonParamiko模块密钥相关类主要有以下组件:OpenSSH是SSH协议的免费开源实现。OpenSSH提供了服务端后台程序和客户端工具。所有的Linux操作系统均集成了OpenSSH。OpenSSH把用户访问过每个计算机的公钥都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免用户受到中间人攻击等。3Paramiko模块–组件SSHAgent类:该类用于SSH代理。Hostkeys类:该类与OpenSSHknown_hosts文件相关,用于创建一个hostkeys对象。Keyhandling类:该类用于创建对应密钥类型的实例,如RSA密钥,DSS(DSA)密钥。3.1PythonParamiko模块在Windows主机,打开Win10的命令行CMD,执行:pipinstallparamiko命令。建议使用国内pip源安装。测试paramiko,可以看出paramiko的版本为2.7.24Paramiko模块安装C:\Users\Administrator>pipinstallparamiko-i/pypi/simple/--trusted-hostC:\Users\Administrator>pythonPython3.9.6(tags/v3.9.6:db3ff76,Jun282021,15:26:21)[MSCv.192964bit(AMD64)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>>>>importparamiko>>>paramiko.__version__'2.7.2'>>>>>>exit()C:\Users\Administrator>项目3使用paramiko实现网络设备自动化巡检3.1Paramiko模块介绍3.2Paramiko模块的类3.3Paramiko案例3.2

Paramiko模块的类SSHClient的作用类似于Linux的SSH命令,是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及SFTPClient类,通常用于执行远程命令。SSHClient常用方法如下:1SSHClient类及其方法connect():实现远程服务器的连接与认证,对于该方法只有hostname是必传参数。常用参数:Hostname:

连接的目标主机;

port:SSH_PORT指定端口

username:验证的用户名;

password:验证的用户密码

pkey:私钥方式用于身份验证;key_filename:一个文件名或文件列表,指定私钥文件

timeout:可选的tcp连接超时时间;compress:是否打开压缩

allow_agent:是否允许连接到ssh代理,默认为True允许

look_for_keys:是否在~/.ssh中搜索私钥文件,默认为True允许3.2

Paramiko模块的类2SSHClient类及其方法set_missing_host_key_policy():设置远程服务器没有在know_hosts文件中记录时的应对策略。load_system_host_keys():从系统文件加载主机密钥,如果没有参数,那么就尝试从用户本地的“knownhosts”文件中读取密钥信息。目前支持三种策略:AutoAddPolicy:自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认WarningPolicy用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接RejectPolicy自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项3.2

Paramiko模块的类3SSHClient类及其方法exec_command():在远程服务器执行Linux命令的方法。invoke_shell():基于SSH会话连接,启动一个交互式shell会话。open_sftp():在当前ssh会话的基础上创建一个sftp会话。该方法会返回一个SFTPClient对象。利用SSHClient对象的open_sftp()方法,可以直接返回一个基于当前连接的sftp对象,可以进行文件的上传等操作。如

sftp=client.open_sftp()

sftp.put('test.txt','text.txt')3.2

Paramiko模块的类SFTPCLient类作为一个sftp的客户端对象,根据SSH传输协议的sftp会话,实现远程文件操作,如上传、下载、权限、状态。常用的方法:4SFTPClient类及其方法from_transport():从开启的Transport通道创建一个SFTP客户端通道。常用到的参数:

T:一个认证过的开启的Transport会话;window_size:可选参数,SFTP会话窗口大小max_packet_size:可选参数,SFTP会话最大数据包大小3.2

Paramiko模块的类5SFTPClient类及其方法get():将远程文件(remotepath)从SFTP服务器复制到本地主机的指定路径中(localpath),操作引发的任何异常都将被传递。put():将本地文件(localpath)从本地主机复制到SFTP服务器的指定路径中(remotepath),操作引发的任何异常都将被传递。mkdir()在服务器上创建目录remove()在服务器上删除目录rename()在服务器上重命名目录stat()查看服务器文件状态listdir()列出服务器目录下的文件3.2

Paramiko模块的类Keyhandling类用于创建对应密钥类型的实例,如RSA密钥,DSS(DSA)密钥。这个类包含了密钥的读取,写入等相关方法。常用方法:6Keyhandling类及其方法RSAKey.from_private_key_file(filename):从文件读取RSA私钥来创建密钥对象DSSKey.from_private_key_file(filename):从文件读取DSS私钥来创建密钥对象项目3使用paramiko实现网络设备自动化巡检3.1Paramiko模块介绍3.2Paramiko模块的类3.3Paramiko任务实施3.3使用Paramiko登录设备公司A的网络已经在正常运行。现在考虑对运行中的网络设备进行日常巡检,除了日常的设备环境检查外,还要检查设备基本信息和设备运行状态等。本任务将收集网络设备的版本信息、补丁信息、时钟信息、板卡运行状态、CPU使用率和内存使用率以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论