前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的Python脚本,实现ssh登录配置路由器

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

作者头像
释然IT杂谈
发布2022-09-23 12:18:35
1.3K0
发布2022-09-23 12:18:35
举报
文章被收录于专栏:释然IT杂谈

简介

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模拟器中桥接本地计算机来做本实验,拓扑如下:

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

代码语言:javascript
复制
初始化
1.配置hostname 和domain-name
hostname  R1
ip  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脚本

代码语言:javascript
复制
# import 导入模块
import paramiko
import 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接口的。

脚本演示如下:

路由器开启debug ip ssh ,方便看到ssh连接情况 http://mpvideo.qpic.cn/0bf2uiacaaaakaaob3hzabpvbiwdecraaiaa.f10002.mp4?

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

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档