千家信息网

python中SSH远程登录设备怎么实现

发表于:2024-12-02 作者:千家信息网编辑
千家信息网最后更新 2024年12月02日,这篇文章主要介绍了python中SSH远程登录设备怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中SSH远程登录设备怎么实现文章都会有所收获,下面我们
千家信息网最后更新 2024年12月02日python中SSH远程登录设备怎么实现

这篇文章主要介绍了python中SSH远程登录设备怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中SSH远程登录设备怎么实现文章都会有所收获,下面我们一起来看看吧。

python中支持SSH协议的模块主要有Paramiko和netmiko两种,本次实验采用netmiko模块。

netmikko模块为python的第三方模块,需要使用pip来下载安装。(联网的情况下)

下载完毕后,进入Python 3.10解释器,如果import netmiko没有报错,则说明Netmiko安装成功。

实验拓扑

将ensp的LSW1与本地虚拟网卡loopback0进行桥接,模拟将自己的电脑桥接到以下拓扑网络中。

实验目的:

通过netmiko模块的SSH逐一登录4台交换机LSW2-LSW5,并依次为其配置STP,默认模式为MSTP。

实验脚本

完整代码

from  netmiko import ConnectHandlerfor i in range(20,24):    SW={        'device_type':'huawei',        'ip':'10.0.1.'+str(i),        'username':'python',        'password':'123456',        }    connect=ConnectHandler(**SW)    print('\n'+'-----------------'+'成功登录到交换机'+SW['ip']+'-----------------')    config_commands=['stp mode stp','dis stp | include CIST Global Info']    output=connect.send_config_set(config_commands)    print(output)    connect.save_config()

1.从netmiko模块导入它的链接库函数ConnectHandler(),用于实现SSH登录网络设备。

from  netmiko import ConnectHandler

2.创建一个字典SW,该字典包含'device_type'、'ip'、'username'、'password'四个必选值。'device_type'用于指定设备类型,这里我们用的是华为的设备,所以'device_type'为'huawei'。

for i in range(20,24):    SW={        'device_type':'huawei',        'ip':'10.0.1.'+str(i),        'username':'python',        'password':'123456',        }

由于我们这里要登陆四台设备,所以要用for循环。

3.调用ConnectHandler()函数,借用for循环,对字典SW进行SSH连接,将他赋值给变量connect,注意SW2前面的**作为标识。

connect=ConnectHandler(**SW)

在Python的在形参前加'*'和'**'表示动态形参

在形参前加'*'表示可以接受多个实参值存进数组

对于在形参前加'**'表示表示接受参数转化为字典类型

4.如果SSH登录成功,则提示成功登录

  print('\n'+'-----------------'+'成功登录到交换机'+SW['ip']+'-----------------')

5.创建一个名为config_commands的列表为参数,其元素为需要在交换机上执行的命令。

config_commands=['stp mode stp','dis stp | include CIST Global Info']

6.然后以刚刚创建的config_commands的列表为参数,调用ConnectHandler()的send_config_set()函数来使用上述命令对SW做配置,并将配置过程打印出来。

output=connect.send_config_set(config_commands)print(output)

7.最后用save_config()保存设备配置

 connect.save_config()

实验结果

从以上结果可知,netmiko额外替我们输入了:system view和return。

代码优化

如果有大量的交换机其管理ip地址也没什么规律性,此时直接用for循环管理ip地址来登录设备,就不再那么灵活和使用了。此时我们可以把所有交换机的ip地址都放入都放入一个文件名为ip_list的文件,通过for循环readlines()来读取文件中的每行ip地址,来逐台登录设备。

完整脚本

from  netmiko import ConnectHandlerwith open('ip_list.txt') as f:    for line in f.readlines():        host=line.strip()        SW={            'device_type':'huawei',            'ip':host,             #host是变量,不要粗心加了引号            'username':'python',            'password':'123456',            }        connect=ConnectHandler(**SW)        print('\n'+'-----------------'+'成功登录到交换机'+SW['ip']+'-----------------')        config_commands=['stp mode stp','dis stp | include CIST Global Info']        output=connect.send_config_set(config_commands)        print(output)        connect.save_config()

注意:ip_list要和python脚本在一个文件夹。

结果

关于"python中SSH远程登录设备怎么实现"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"python中SSH远程登录设备怎么实现"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

登录 设备 成功 交换机 模块 实验 地址 字典 文件 形参 循环 配置 函数 参数 知识 结果 脚本 代码 内容 变量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术单招院校 网络安全实验设计一个网站 北京企业软件开发正规平台 手机游戏狙击精英无法访问服务器 SQL数据库为什么初始化失败 闲聊数据库出售 玉林亿客网络技术有限公司 浪潮服务器管理默认用户密码 服务器4块硬盘在一起怎么装系统 生物相关数据库 mysql 显示未知数据库 网络技术和什么结合成一种技术 易瑞互联网络科技有限公司 关于服务器安全的措施 赛迪研究院网络安全所 陕西掌宝互联网科技 网络安全和保密工作存在问题 手机上的数据库怎么查 青岛演的电视剧关于软件开发 裂变商城软件开发 数据库找工作怎么找 永恒之塔到选择服务器时候没反应 深圳市创速网络技术有限公司 交通银行西安软件开发中心地址 网络安全常识选择题及答案 多租户连接不同的数据库实例 腾讯 软件开发 郑州互联网软件开发需要多少钱 软件开发合同纠纷案件多久结案 网络技术管理是什么意思
0