简单的Python脚本,实现ssh登录配置路由器

简介: 简单的Python脚本,实现ssh登录配置路由器


简介


paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持。因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。

此外,由于常见的交换机都支持ssh,那么使用paramiko控制交换机变成现实。



安装


pip 安装方式

pip install paramiko

如果没有安装pycrypto,则需要先安装pycrypto库



使用


paramiko提供了多种连接方式,在此我们使用ssh的方式连接交换机并发送命令以实现配置交换机的目的。



实验环境


eve-ng模拟器中桥接本地计算机来做本实验,拓扑如下:

640.png

这里写脚本只演示登录R1,首先给R1做初始化,配置如下:


初始化1.配置hostname 和domain-namehostname  R1ip  domain-name  shiranit.com
2.产生密钥,产生1024位的密钥crypto key generate rsa general-keys  modulus 1024
3.配置sssh的信息会话超时时间ip ssh  time-out 120最大认证次数ip ssh authentication-retries 3启用ssh和telnet认证line vty 0 4  transport input ssh telnet   login local
4.本地认证用户 enable passwod shiran123 username shiran privilege 15 password shiran123 PS: privilege 15这么设置是为了免去登陆时输入enable密码



python脚本


# import 导入模块import paramikoimport time# 定义三个字符串类型的变量ip = '192.168.226.138'username = 'shiran'password = 'shiran123'# 开启SSH会话赋值给变量ssh_client = paramiko.SSHClient()# 开启可接收陌生的ssh服务会话ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)#  开启交互式会话command = ssh_client.invoke_shell()print ('已经成功登陆路由器' + ip)# 向路由器发出命令command.send('configure terminal\n')command.send('interface loop 0\n')command.send('ip add 1.1.1.1 255.255.255.255\n')command.send('end\n')command.send('wr mem\n')# 延时5秒time.sleep(5)# 设置截屏长度并打印出来output = command.recv(65535).decode('ascii')print (output)# 退出ssh会话ssh_client.close


此段代码是使用ssh登陆路由器R1,并创建loopback 0 接口,配置ip为1.1.1.1/32,然后保存配置。


正常R1是只做了初始化,没有loopback 0接口的。


640.png

脚本演示如下:

路由器开启debug ip ssh ,方便看到ssh连接情况

image.png


根据上面视频可看出ssh成功连接到路由器的日志信息,以及loopback0添加成功的情况。测试python脚本成功,实验至此完成。


欢迎各位感兴趣的小伙伴一起交流学习,优化脚本,做出适合网工使用的小脚本。

相关文章
|
11月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
939 0
|
12月前
|
网络安全 开发工具 git
配置本地环境以管理Git多账户SSH连接的方法
通过以上步駟设置后, 您可以轻松管理多個 Git 账户并且根据不同项目需求切换 SSH 密匙进行版本控制操作。
1402 20
|
JavaScript 前端开发 机器人
【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置
本文介绍了在中国区Azure上使用Python SDK配置Azure Bot Service时遇到的问题及解决方案,涵盖参数设置与适配器配置,适用于希望在Azure中国区部署Python机器人的开发者。
330 9
|
12月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
IDE 开发工具 开发者
手把手教你安装PyCharm 2025:开发者的Python IDE配置全流程+避坑指南
本教程详细介绍了PyCharm 2025版本在Windows系统下的安装流程及配置方法,涵盖AI代码补全与智能调试工具链等新功能。内容包括系统要求、安装步骤、首次运行配置(如主题选择与插件安装)、创建首个Python项目,以及常见问题解决方法。此外,还提供了切换中文界面和延伸学习资源的指导,帮助用户快速上手并高效使用PyCharm进行开发。
6657 61
|
Python
在VScode环境下配置Python环境的方法
经过上述步骤,你的VSCode环境就已经配置好了。请尽情享受这扇你为自己开启的知识之窗。如同你在冒险世界中前行,你的探索之路只有越走越广,你获得的知识只会越来越丰富,你的能力只会越来越强。
1361 37
|
网络安全 开发工具 git
GitHub 多账户 SSH 配置指南
本文介绍了如何在同一台电脑上配置多个 GitHub 账户的 SSH 密钥。内容包括:检查现有密钥、生成新的 SSH 密钥、配置 SSH config 文件、将公钥添加到 GitHub、验证 SSH 连接、设置 Git 用户信息、创建工作区目录、使用不同账户克隆仓库,以及为每个仓库配置独立的用户信息等步骤。通过这些操作,可以实现在不同项目中使用不同的 GitHub 账户进行提交和管理。
929 0
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
431 22
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
669 10

推荐镜像

更多