paramiko STELNET登陆设备

实验目的:

公司有一台CE12800的设备,管理地址位172.16.1.2,现在需要编写自动化脚本,通过ssh登陆到设备上并进行简单的信息查看。

实验拓扑:

实验步骤:

步骤1:将本地电脑和ensp的设备进行桥接,桥接配置如下图所示:

步骤2:配置交换机的IP地址。

<HUAWEI>system-view immediately

[HUAWEI]sysname CE1

[CE1]interface  Vlanif 1

[CE1-Vlanif1]ip address 172.16.1.2 24

[CE1-Vlanif1]quit

[CE1]interface  g1/0/0

[CE1-GE1/0/0]undo  shutdown

测试本地的cmd窗口与CE1设备的连通性。

C:\Users\xxx>ping 172.16.1.2

正在 Ping 172.16.1.2 具有 32 字节的数据:

来自 172.16.1.2 的回复: 字节=32 时间=19ms TTL=255

来自 172.16.1.2 的回复: 字节=32 时间=7ms TTL=255

来自 172.16.1.2 的回复: 字节=32 时间=5ms TTL=255

来自 172.16.1.2 的回复: 字节=32 时间=7ms TTL=255

172.16.1.2 的 Ping 统计信息:

    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 5ms,最长 = 19ms,平均 = 9ms

步骤3:配置CE1的SSH登陆。

  1. 创建SSH登陆的账号

[CE1]aaa

[CE1-aaa]local-user python password cipher Huawei@123

[CE1-aaa]local-user python user-group manage-ug

[CE1-aaa]local-user python service-type ssh

[CE1-aaa]local-user python level 3

  1. 在CE1设备配置SSH用户的认证方式和服务类型。

[CE1]ssh user python

[CE1]ssh user python authentication-type password

[CE1]ssh user python service-type stelnet

  1. 配置vty用于的登陆方式,及开启stenet服务

[CE1]stelnet server  enable

Info: Succeeded in starting the STelnet server.

[CE1]user-interface vty 0 4

[CE1-ui-vty0-4]authentication-mode  aaa

[CE1-ui-vty0-4]protocol  inbound ssh

[CE1-ui-vty0-4]user  privilege level  3

[CE1-ui-vty0-4]q

使用shell工具查看是否能够登陆到CE1设备

步骤4:编写python代码

完整代码如下:

import  paramiko

import  time

ssh_user = 'python'

ssh_pass = 'Huawei@123'

service_IP = '172.16.1.2'

client = paramiko.SSHClient()

client.set_missing_host_key_policy(paramiko.AutoAddPolicy)

client.connect(hostname=service_IP,username=ssh_user,password=ssh_pass)

shell = client.invoke_shell()

shell.send('n\n')

shell.send('screen-length 0 temporary\n')

shell.send('display  current-configuration\n')

time.sleep(3)

dis_cu = shell.recv(999999).decode()

shell.send('display  version\n')

time.sleep(3)

dis_ve = shell.recv(999999).decode()

print(dis_cu)

print('_______________________________')

print(dis_ve)

print('_______________________________')

client.close()

步骤5:编译器执行

步骤6 :查看输出结果

Warning: The initial password poses security risks.

The password needs to be changed. Change now? [Y/N]:n

Info: The max number of VTY users is 5, the number of current VTY users online is 1, and total number of terminal users online is 2.

      The current login time is 2023-11-08 17:44:26.

      The last login time is 2023-11-08 17:34:00 from 172.16.1.1 through SSH.

<CE1>screen-length 0 temporary

Info: The configuration takes effect on the current user terminal interface only.

<CE1>display  current-configuration

!Software Version V800R011C00SPC607B607

!Last configuration was updated at 2023-11-08 17:33:12+00:00 by SYSTEM automatically

#

sysname CE1

#

device board 17 board-type CE-MPUB

device board 1 board-type CE-LPUE

#

aaa

 local-user python password irreversible-cipher $1c$l}y.#(<UOQ$zxCQM:&Z(CZ$k"$,0pK,V(2oKQ9T;726;t3}zG8U$

 local-user python service-type ssh

 local-user python level 3

 local-user python user-group manage-ug

 #

 authentication-scheme default

 #

 authorization-scheme default

 #

 accounting-scheme default

 #

 domain default

 #

 domain default_admin

#

interface Vlanif1

 ip address 172.16.1.2 255.255.255.0

#

interface MEth0/0/0

 undo shutdown

#

interface GE1/0/0

 undo shutdown

#

interface GE1/0/1

 shutdown

#

interface GE1/0/2

 shutdown

#

interface GE1/0/3

 shutdown

#

interface GE1/0/4

 shutdown

#

interface GE1/0/5

 shutdown

#

interface GE1/0/6

 shutdown

#

interface GE1/0/7

 shutdown

#

interface GE1/0/8

 shutdown

#

interface GE1/0/9

 shutdown

#

interface NULL0

#

stelnet server enable

ssh user python

ssh user python authentication-type password

ssh user python service-type stelnet

ssh authorization-type default aaa

#

ssh server cipher aes256_gcm aes128_gcm aes256_ctr aes192_ctr aes128_ctr aes256_cbc aes128_cbc 3des_cbc

#

ssh server dh-exchange min-len 1024

#

ssh client cipher aes256_gcm aes128_gcm aes256_ctr aes192_ctr aes128_ctr aes256_cbc aes128_cbc 3des_cbc

#

user-interface con 0

#

user-interface vty 0 4

 authentication-mode aaa

 user privilege level 3

 protocol inbound ssh

#

vm-manager

#

return

<CE1>

_______________________________

display  version

Huawei Versatile Routing Platform Software

VRP (R) software, Version 8.180 (CE12800 V800R011C00SPC607B607)

Copyright (C) 2012-2018 Huawei Technologies Co., Ltd.

HUAWEI CE12800 uptime is 0 day, 0 hour, 38 minutes

SVRP Platform Version 1.0

<CE1>

_______________________________

进程已结束,退出代码0

代码解析:

(1)导入库

import  paramiko

import  time

导入paramiko 和time 两个库,如果没有安装paramiko库,可以使用编译工具进行按照,以pycharm为例。

点击pycharm的文件----设置,选择python解释器,点击‘+’。

搜素paramiko,点击安装软件包。

(2)定义变量

ssh_user = 'python'

ssh_pass = 'Huawei@123'

service_IP = '172.16.1.2'

分别将在设备配置好的ssh用户名,密码以及登陆设备的IP地址定义为变量。

(3)建立SSH会话连接

client = paramiko.SSHClient()

使用Paramiko SSHClient()实例化SSH对象。本例赋值给client。

client.set_missing_host_key_policy(paramiko.AutoAddPolicy)

新建立ssh连接时不需要再输入yes或no进行确认。

client.connect(hostname=service_IP,username=ssh_user,password=ssh_pass)

目的SSH服务器为172.16.1.2,用户名为python, 密码为Huawei@123以密码认证方式进行用户认证。

(4)

shell = client.invoke_shell()

调用invoke_shell()赋值给shell。invoke_shell()作用是打开一个交互的shell会话。该会话为一个逻辑通道channel,建立在SSH会话连接上。

shell.send('n\n')

shell.send('screen-length 0 temporary\n')

shell.send('display  current-configuration\n')

time.sleep(3)

shell.send即在命令行输入相应的指令。

shell.send('n\n')代表登陆到设备时无需再次修改密码。

shell.send('screen-length 0 temporary\n')代表取消分屏。

shell.send('display  current-configuration\n')代表查看设备当前配置

time.sleep(3)代表等待3秒。

dis_cu = shell.recv(999999).decode()

invoke_shell()已经创建了一个channel逻辑通道。此前所有的输入输出的过程信息都在此channel中。我们可以获取这个channel中所有信息,显示到Python编译器。

shell.send('display  version\n')

time.sleep(3)

dis_ve = shell.recv(999999).decode()

查看设备的版本信息,并且获取回显信息。

print(dis_cu)

print('_______________________________')

print(dis_ve)

print('_______________________________')

打印回显信息。

client.close()

关闭会话连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/175709.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

振南技术干货集:制冷设备大型IoT监测项目研发纪实(2)

注解目录 1.制冷设备的监测迫在眉睫 1.1 冷食的利润贡献 1.2 冷设监测系统的困难 &#xff08;制冷设备对于便利店为何如何重要&#xff1f;了解一下你所不知道的便利店和新零售行业。关于电力线载波通信的论战。&#xff09; 2、电路设计 2.1 防护电路 2.1.1 强电防护 …

HT5169 单声道D类音频功放 I2S输入

HT5169是一款内置BOOST升压模块的D类音频功率放大器。内置的BOOST升压模块可通过外置电阻调节升压值&#xff0c;即使是锂电池供电&#xff0c;在升压至7.5V&#xff0c;2Ω负载条件下则能连续输出 11W功率。其支持外部设置调节BOOST输出电压。 HT5169是一颗单声道D类音频功放&…

银河麒麟安装Docker

# 配置阿里云 Centos8 镜像源&#xff0c;需要额外的一些依赖&#xff0c;而这些依赖在麒麟官方的源里面是没有的 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 配置阿里云 docker 镜像源 sudo yum-config-manager --add-r…

4.15每日一题(连续函数在有界闭区域上求最大/小值:拉格朗日乘数法、化条件为无条件法)

方法一&#xff1a;拉格朗日乘数法&#xff08;拉格朗日乘数设的方程比较好解的时候使用&#xff09; 方法二&#xff1a;化条件为无条件 &#xff08;拉格朗日乘数设的方程不好解的时候使用&#xff09; &#xff08;1&#xff09;直角坐标方程化条件为无条件法 &#xff08;2…

WCS WMS WES关系

一、定义&#xff1a; 仓库控制系统 &#xff08;WCS&#xff09; 是一种软件应用程序。 WCS用于指导仓库和配送中心&#xff08;DC&#xff09; 内的实时活动。作为仓库/配送中心的“交通警察”&#xff0c;WCS 负责保持一切顺利运行&#xff0c;最大限度地提高物料搬运子系…

CSS实现空心的“尖角”

大家好&#xff0c;我是南宫&#xff0c;来分享一个昨天解决的问题。 我记得之前刷面试题的时候&#xff0c;CSS面试题里面赫然有一题是“如何用CSS实现三角形”&#xff0c;我觉得这个问题确实很经典&#xff0c;我上的前端培训班当初就讲过。 大概思路如下&#xff1a; 先…

hadoop shell操作 hdfs处理文件命令 hdfs上传命令 hadoop fs -put命令hadoop fs相关命令 hadoop(十三)

hadoop fs -help rm 查看rm命令作用 hadoop fs 查看命令 1. 创建文件夹&#xff1a; # hdfs前缀也是可以的。更推荐hadoop hadoop fs -mkdir /sanguo 2.上传至hdfs命令&#xff1a; 作用&#xff1a; 从本地上传hdfs系统 &#xff08;本地文件被剪切走&#xff0c;不存在了&…

技术分享| gcc版本升级到5.2

一、介绍 GCC&#xff08;GNU Compiler Collection&#xff09;是一套广泛使用的开源编译器集合&#xff0c;用于编译多种编程语言&#xff0c;包括C、C、Objective-C、Fortran等。GCC 的不同版本提供了许多新功能、改进和修复&#xff0c;其中包括从 GCC 4.8.5 升级到 GCC 5.…

分享十几个适合新手练习的软件测试项目

说实话&#xff0c;在找项目的过程中&#xff0c;我下载过&#xff08;甚至付费下载过&#xff09;N多个项目、联系过很多项目的作者&#xff0c;但是绝大部分项目&#xff0c;在我看来&#xff0c;并不适合你拿来练习&#xff0c;它们或多或少都存在着“问题”&#xff0c;比如…

AIGC 点亮创作之旅,「重内容」行业也能轻装出发

毋庸置疑&#xff0c;AIGC 的普及成为了内容产业的一束光。 不仅策划们可以从信息挖掘、素材调用、修改编辑等基础文案工作中解放出来&#xff0c;美术也成为 AIGC 的应用强项&#xff0c;基本的加文字、换背景、改尺寸、延展素材等&#xff0c;都能快速解决。 内容创作者们也因…

kafka权限认证 topic权限认证 权限动态认证-亲测成功

kafka权限认证 topic权限认证 权限动态认证-亲测成功 kafka动态认证 自定义认证 安全认证-亲测成功 MacBook Linux安装Kafka Linux解压安装Kafka 介绍 1、Kafka的权限分类 身份认证&#xff08;Authentication&#xff09;&#xff1a;对client 与服务器的连接进行身份认证…

leetcode 240. 搜索二维矩阵 II

2023.11.22 本题最先想到的是暴力法和二分法&#xff0c;暴力法就不写了&#xff0c;写一下二分法的解法&#xff0c;java代码如下&#xff1a; class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int[] row : matrix){int left 0;int right r…

新能源车将突破2000万辆,汉威科技为电池安全保驾护航

近年来&#xff0c;我国新能源汽车销量持续突破新高。据中汽协数据&#xff0c;1~10月&#xff0c;国内新能源汽车销量达728万辆&#xff0c;同比增长37.8%&#xff0c;市场占有率达到30.4%。随着第四季度车市传统旺季的到来&#xff0c;新能源消费需求将进一步释放&#xff0c…

一文带你快速了解Python史上最快Web框架

文章目录 1. 写在前面2. Sanic框架简介2.1 背景2.2 特征与优势 3. Sanic框架实战3.1. 安装Sanic3.2. Demo案例编写 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&a…

4.2V升多串LED驱动升压6V9V12V恒流点灯

4.2V升多串LED驱动升压6V9V12V恒流点灯 探索WT7012&#xff0c;这款引领潮流的升压转换器&#xff0c;其强大功能将彻底改变您的LED驱动格局。可以轻松驾驭多达7串白光LED&#xff0c;展现出无与伦比的驱动能力。 无论是单节锂电池还是多节锂电池供电产品&#xff0c;宽电压3…

老知识复盘-SQL从提交到执行到底经历了什么 | 京东云技术团队

一、什么是SQL sql(Structured Query Language: 结构化查询语言)是高级的费过程化编程语言,允许用户在高层数据结构上工作, 是一种数据查询和程序设计语言, 也是(ANSI)的一项标准的计算机语言. but… 目前仍然存在着许多不同版本的sql语言,为了与ANSI标准相兼容, 它们必须以相…

特征工程完整指南 - 第二部分

苏米特班迪帕迪亚 照片由Dan Cristian Pădureş在Unsplash上拍摄 一、说明 DATA&#xff0c;通常被称为原油&#xff0c;需要经过加工和清洁才能有效地用于各种用途。正如我们不直接使用来自其来源的石油一样&#xff0c;数据也经过类似的处理以提取其真正价值。 二、特征选…

数据结构——栈的详细介绍

数据结构——栈 一、栈的结构和概念二、 栈的两种构建方式①、用数组进行构建②、用链表进行构建 三、栈的创建四、栈的初始化五、栈的销毁六、压栈七、出栈八、判空九、获取栈顶元素十、获取栈的size 一、栈的结构和概念 栈&#xff1a;栈是一种特殊的线性表&#xff0c;其只…

【数据分享】全国1-5级流域、河流矢量数据与水体分布、五级水系数据、八级水系边界范围矢量数据

全国3级流域及各级河流数据:今天给大家分享的数据主要为五个&#xff0c;分别为3级流域、1级河流数据、3级以上河流数据以及4级和5级的河流数据。其中1级河流和3级以上河流数据中存在线状矢量以及面状的湖泊数据&#xff1b;4级和5级的河流数据仅为线状的河流矢量数据。数据中大…

Mysql 8.0主从复制模式安装(兼容Mysql 5.7)

Mysql V8.0.35安装 官网地址&#xff1a;MySQL :: Download MySQL Community Server 下载【Mysql 8.0.35】压缩包 解压压缩包&#xff0c;仅保留6个安装文件即可 mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm my…