详解Python SSH远程登录的实现及步骤是什么
Admin 2022-09-15 群英技术资讯 1069 次浏览
关于“详解Python SSH远程登录的实现及步骤是什么”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。netmikko模块为python的第三方模块,需要使用pip来下载安装。(联网的情况下)

下载完毕后,进入Python 3.10解释器,如果import netmiko没有报错,则说明Netmiko安装成功。
将ensp的LSW1与本地虚拟网卡loopback0进行桥接,模拟将自己的电脑桥接到以下拓扑网络中。

通过netmiko模块的SSH逐一登录4台交换机LSW2-LSW5,并依次为其配置STP,默认模式为MSTP。
完整代码
from netmiko import ConnectHandler
for 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 ConnectHandler
with 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远程登录的实现及步骤是什么”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络资讯站,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python类的私有属性和公共属性说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章介绍了使用Python操作MySql数据库和MsSql数据库的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了python的自变量选择(所有子集回归,后退法,逐步回归),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
Python数据类型分为值类型和引用类型, 下面我们看下它们的区别:值类型:对象本身不允许修改,数值的修改实际上是让变量指向了一个新的对
pyenv是管理python版本的工具。安装pyenv后,可以管理各种python版本,并且各个版本的环境完全独立,互不干扰。今天通过本文给大家分享Python中Pyenv virtualenv插件的使用,感兴趣的朋友一起看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008