paramiko STELNET登陆设备

2023-11-22 13:20
文章标签 设备 登陆 paramiko stelnet

本文主要是介绍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()

关闭会话连接。

这篇关于paramiko STELNET登陆设备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410434

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

Android的登陆MD5加密

1:导入代码 public class MD5Util {private static final String TAG = "MD5Util";/**** MD5加码 生成32位md5码*/public static String string2MD5(String inStr) {Log.e(TAG, "string2MD5: -------------------------");Mess

海鲜加工污水处理设备处理效果高

诸城市鑫淼环保小编带大家了解一下海鲜加工污水处理设备处理效果高   海鲜加工污水处理设备通常采用物理、化学和生物处理相结合的方法,对废水中的污染物进行高xiao去除。设备设计紧凑,占地面积小,操作简便,适用于不同规模的海鲜加工厂。   设备特点   高xiao性:采用先进的处理工艺和技术,确保废水处理效果稳定可靠。   占地面积小:设备设计紧凑,占地面积小,适合在有限的空间内安装。

超强台风摩羯逼近!或成大陆史上最强登陆台风,防御措施需到位

超强台风摩羯逼近!或成大陆史上最强登陆台风,防御措施需到位 摩羯即将登录,各位兄弟姐妹注意安全!#大型纪录片#摩羯#台风 推荐阅读: 一夜蒸发2万亿!英伟达市值遭遇滑铁卢 《火速围观!黑神话悟空IP山西空心月饼,又一波抢购热潮即将来袭》 直击心灵!佤写不来情歌,却意外火爆全网,你听了没? 警告!明年6至9月假期空窗期,你的旅行计划何去何从? 独家揭秘!雷军豪赠《黑神话:悟空》给王腾,

集运系统需要与哪些硬件设备集成?

随着电商和跨境贸易的不断发展,集运服务越来越受到海外用户的青睐。集运系统作为一种高效的跨境物流管理工具,可以协调各个环节之间的物流流程,提高物流效率和管理水平,被越来越多的集运企业采用。而集运系统作为集运服务的重要组成部分,也需要配套相应的硬件设备才能更好地支持跨境集运业务。下面就来介绍一下集运系统需要哪些硬件设备支持呢? 1.PDA:是一种便携式电子设备,可以轻松地进行数据采集和处理,具有移

3.门锁_STM32_矩阵按键设备实现

概述 需求来源: 门锁肯定是要输入密码,这个门锁提供了两个输入密码的方式:一个是蓝牙输入,一个是按键输入。对于按键输入,采用矩阵按键来实现。矩阵按键是为了模拟触摸屏的按键输入,后续如果项目结束前还有时间就更新为触摸屏按键输入。 矩阵按键开发整体思路: 由于矩阵按键就是GPIO的控制,所以不进行芯片和设备的分层编写,控制写在同一个文件中,最终向应用层提供一个接口。 代码层级关系:

Anroid BLE蓝牙(手机分别作为中心设备和外围设备)

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。  BLE蓝牙模块主要应用领域     1、移动扩展设备     2、汽车电子设备     3、健康医疗用品:心跳带、血压计等     4、定位应用:室内定位、井下定位等     5、近距离数据采集:无线