当前位置: 首页 > article >正文

SSH、SNMP、NETCONF、SFTP

SSHCE12800配置#开启SSH服务 stelnet server enable ssh user renxinyu ssh user renxinyu authentication-type password ssh user renxinyu service-type stelnet #创建本地用户 aaa local-user renxinyu password cipher Huawei123 local-user renxinyu level 3 local-user renxinyu service-type ssh quit #生成RSA密钥对 rsa local-key-pair create #VTY线路允许SSH接入 user-interface vty 0 4 authentication-mode aaa protocol inbound ssh quitpython脚本 自动化运维脚本 针对华为设备 自动备份脚本 import paramiko import time #参数区域 DEVICES {192.168.77.2:(yeslab,Admin456), 192.168.66.2:(yeslab2,Admin456)} IPs list(DEVICES.keys()) ip_list list(DEVICES.values()) print(ip_list) USERNAMEs [one[0] for one in ip_list] PASSWORDs [one[1] for one in ip_list] # print(USERNAMEs) #配置备份代码 def save_config(ip,config): with open(fconfig/{ip}_conf.txt,w) as f: f.write(config) def run_backup(ip,username,password): ssh_port paramiko.SSHClient()#使用Paramiko库连接网络设备并备份配置 ssh_port.set_missing_host_key_policy(paramiko.AutoAddPolicy)#跳过主机密钥验证 ssh_port.connect(hostnameip, usernameusername, passwordpassword)#输入IP用户名密码 print(f正在备份{ip}设备...) shell ssh_port.invoke_shell()#调用 invoke_shell() 方法创建一个交互式 shell 会话类似于 SSH 终端 shell.send(screen-length 0 temporary\n)#防止--more--出现 shell.send(display cur\n) time.sleep(2)#暂停程序执行 2 秒等待设备返回配置输出。 resp shell.recv(99999).decode()#暂停程序执行 2 秒等待设备返回配置输出。 config resp.split(HUAWEIdisplay cur\r\n)[1].split(HUAWEI)[0] save_config(ip,config) ssh_port.close() #主进程 if __name__ __main__: for index in range(len(IPs)): ip IPs[index] username USERNAMEs[index] password PASSWORDs[index] run_backup(ip,username,password)SNMPCE12800SSH基础上#创建用户创建组 snmp-agent usm-user v3 yeslab group dc-admin #设置认证 snmp-agent usm-user v3 yeslab authentication-mode sha Huawei123 Huawei123 #加密方式 snmp-agent usm-user v3 yeslab privacy-mode aes128 Huawei123 Huawei123 #设置源端口 snmp-agent trap source GE1/0/0 #自定义Mib视图并绑定对应iso snmp-agent mib-view included nt iso snmp-agent mib-view included rd iso snmp-agent mib-view included wt iso snmp-agent mib-view included iso-view iso #设置权限 snmp-agent group v3 dc-admin privacy read-view rd write-view wt notify-view ntpython脚本device_info.pyIP 192.168.66.2 USERNAME yeslab2 PASSWORD Admin123ssh_monitor.pyimport paramiko import time def connect(IP,USERNAME,PASSWORD): #创建SSH连接 ssh paramiko.client.SSHClient() ssh.set_missing_host_key_policy(paramiko.client.AutoAddPolicy()) ssh.connect(hostnameIP, port22,usernameUSERNAME, passwordPASSWORD) print(f{IP}设备登陆成功) cli ssh.invoke_shell() cli.send(screen-length 0 temporary\n) time.sleep(0.5) cli.send(system-view immediately\n) time.sleep(0.5) return cli,ssh #将cli交互式终端和ssh实例返回 def monitor(cli): #每间隔2s从设备端接收数据无限循环 while True: display cli.recv(99999).decode() print(display) time.sleep(2) if __name__ __main__: monitor()snmp.pyfrom pysnmp.hlapi import * from device_info import * from ssh_monitor import * import time def read_config_txt(cli): #读取snmp配置文件并以每0.5s进行发送 with open(../snmp.txt) as f: snmp_config_list f.readlines() for snmp_cmd in snmp_config_list: cli.send(snmp_cmd) time.sleep(0.5) if __name__ __main__: cli,ssh connect(IP, USERNAME, PASSWORD) #将IP等信息传递到connect建立ssh连接 read_config_txt(cli) #将cli交互式终端传递到snmp配置函数中 transport UdpTransportTarget((IP,161)) #建立snmp连接的IP和端口 snmp_channel getCmd(SnmpEngine(), #发送GET请求读取单个OIDsnmpenginesnmp引擎相当于初始化pysnmp创建snmp会话环境 UsmUserData(userNameyeslab, #用户数据 authKeyHuawei123, privKeyHuawei123, authProtocolusmHMACSHAAuthProtocol, privProtocolusmAesCfb128Protocol), transport, #传递的IP端口 ContextData(), #snmpv3上下文默认即可一般为空 ObjectType(ObjectIdentity(SNMPv2-MIB, sysName,0))) errorIndication,errorStatus,errorIndex,varBinds next(snmp_channel) #读取sysname.0即设备主机名获得返回结果逐条返回需要运行一次返回一条 # for msg in varBinds: #打印SNMPv2-MIB::sysName.0 HUAWEI HUAWEI # print(msg) # print(str(msg).split()[1].strip()) # monitor(cli) #打印配置 print(errorIndication:, errorIndication) #查看 SNMP 请求是否成功以及返回了什么 OID 数据。 print(errorStatus:, errorStatus) print(errorIndex:, errorIndex) for msg in varBinds: print(msg:,msg) ssh.close()NETCONFCE12800(SSH基础上)system-view immediately # 1. 创建NETCONF专用用户 aaa local-user netconf password irreversible-cipher Huawei123 local-user netconf service-type ssh local-user netconf level 3 ← 至少level 3建议直接15 quit # 2. 配置SSH用户认证方式和服务类型 ssh user netconf ssh user netconf authentication-type password ssh user netconf service-type snetconf ← 关键必须是snetconf不是stelnet # 3. 开启SNETCONF服务22端口 snetconf server enable # 4. 开启830端口NETCONF专用端口 netconf protocol inbound ssh port 830 quit # 5. 配置VTY用户线 user-interface vty 0 4 authentication-mode aaa protocol inbound ssh user privilege level 3 quitpython脚本from ncclient import manager from ncclient import operations import time #设备参数 ip (192.168.66.2) netconf_port 830 netconf_user yeslab2 netconf_password Admin456 #通告NetConf进行设备配置 def huawei_connect(host, port, username, password): #定义连接函数 return manager.connect(hosthost, portport, usernameusername, passwordpassword, hostkey_verifyFalse, #关闭SSH host key校验 device_params{name: huawei}, #连接的是华为VRP设备 allow_agentFalse, #不从本机 SSH Agent 获取密钥。 look_for_keysFalse) #不查找本地SSH私钥 CREATE_INTERFACE CREATE_INTERFACE config ethernet xmlnshttp://www.huawei.com/netconf/vrp content-version1.0 format-version1.0 ethernetIfs ethernetIf operationmerge ifNameGE1/0/2/ifName l2Enabledisable/l2Enable /ethernetIf /ethernetIfs /ethernet ifm xmlnshttp://www.huawei.com/netconf/vrp content-version1.0 format-version1.0 interfaces interface operationmerge ifNameGE1/0/2/ifName ifDescrConfig by NETCONF/ifDescr ifmAm4 am4CfgAddrs am4CfgAddr operationcreate ifIpAddr192.168.2.1/ifIpAddr subnetMask255.255.255.0/subnetMask addrTypemain/addrType /am4CfgAddr /am4CfgAddrs /ifmAm4 /interface /interfaces /ifm /config m huawei_connect(ip,netconf_port,netconf_user,netconf_password) #建立连接 m.edit_config(targetrunning,configCREATE_INTERFACE)#修改设备running-config直接修改当前运行配置把XML配置发送给设备SFTPCE12800基于SSHsftp server enable ssh user yeslab service-type all ssh user yeslab sftp-directory cfcard:python脚本 自动化运维脚本 上传下载 import paramiko #SSH远程连接使用 import time #时间库 import os #创建文件夹 def check_folder(ip,path): #创建以pathIP的文件夹 path ip if not os.path.isdir(path): #检查文件夹是否存在如果不存在创建文件夹os.path.isdir()检查路径是否存在存在返回True不存在返回Flaseif not取反 os.mkdir(path) print(f{path}目录已经建立) else: print(f{ip}文件夹已存在) return path #返回path路径 #time.localtime() def create_filename(time_struct): #下载下来的文件改名存放 str_year str(time_struct.tm_year) _ str_mon str(time_struct.tm_mon) _ str_mday str(time_struct.tm_mday) _ str_hour str(time_struct.tm_hour) _ str_min str(time_struct.tm_min) _ str_sec str(time_struct.tm_sec) .cfg filename str_year str_mon str_mday str_hour str_min str_sec return filename ip 192.168.77.2#ip地址 port 22#端口号 my_sock (ip,port)#将IP和端口打包成元组作为连接参数 backup_path config/ folder check_folder(ip,backup_path) file_name create_filename(time.localtime()) local_file folder / file_name #本地文件位置 device_file /vrpcfg.cfg #远端文件位置 sftp_proc paramiko.Transport(sock my_sock)#创建Transport对象建立底层SSH传输通道 sftp_proc.connect(usernameyeslab,passwordAdmin456)#用用户名密码进行身份验证建立加密通道 sftp_con paramiko.SFTPClient.from_transport(sftp_proc)#在已经建立的SSH通道上开启一个SFTP子会话 sftp_con.get(remotepathdevice_file,localpath local_file) #下载 #sftp_con.put(localpathconfig/192.168.77.2/2026_5_19_21_33_51.cfg,remotepath/test.cfg)#上传 sftp_proc.close()

相关文章:

SSH、SNMP、NETCONF、SFTP

SSH CE12800配置 #开启SSH服务 stelnet server enable ssh user renxinyu ssh user renxinyu authentication-type password ssh user renxinyu service-type stelnet #创建本地用户 aaalocal-user renxinyu password cipher Huawei123local-user renxinyu level 3local-user r…...

抖音a_bogus生成原理与Python逆向实现全解析

1. 为什么a_bogus成了抖音自动化绕不开的“铁门栓”你写了个脚本,模拟用户行为去抓取抖音的视频列表、评论或用户主页数据,请求发出去,返回的却是{"status_code": 10111, "status_msg": "invalid a_bogus"}——…...

深入理解RAG中的嵌入模型Embedding Model

前言在当前流行的RAG引擎(例如RAGFlow、Qanything、Dify、FastGPT等)中,嵌入模型(Embedding Model)是必不可少的关键组件。在RAG引擎中究竟扮演着怎样的角色呢?本文笔者进行了总结,与大家分享~什…...

麒麟系统启动卡住别慌!这可能是磁盘文件系统坏了,试试这几条Linux命令自救

麒麟系统启动卡顿故障排查指南:从原理到实战的磁盘修复方案 当你的麒麟系统突然卡在启动界面,屏幕上只留下"Boot From Harddisk"或EFI stub信息时,那种焦虑感我深有体会。作为一名经历过数十次类似故障排查的技术顾问,我…...

2026年免费照片去水印软件App推荐,一看就会的保姆级详细教程

你是不是也遇到过这样的场景:好不容易在网上看到一张心水的壁纸、一张有趣的表情包,或者自己拍的视频截图里有碍眼的日期戳、平台logo,想拿来发朋友圈,结果那个水印就像一块顽固的“牛皮癣”,怎么都去不掉?…...

12周学习笔记

...

2026年照片去水印免费软件保姆级教程!学会这几招,告别水印烦恼

你是不是也遇到过这样的抓狂时刻?在平台上刷到一张特别适合做壁纸或配图的高清照片,兴冲冲地保存下来,结果角落里的水印瞬间让整张图的格调打了对折;又或者,自己辛辛苦苦做好的图片,在分享转发几道后&#…...

13.解决 99% 刷机故障!小米 / 华为 / OV / 苹果通用救砖与分区修复教程

摘要 本文面向具备基础电子知识的技术人员,系统阐述主流品牌手机(华为、小米、OPPO、vivo、一加、苹果)的刷机与维修全流程。内容涵盖底层引导加载机制、分区表结构、签名验证原理,并提供完整的刷机脚本与维修诊断工具链。所有代码均已测试,可直接在Linux/Windows环境下运…...

室内点云轮廓提取

1 简介 室内点云轮廓提取是三维感知中的一项基础处理技术,它的核心作用是将杂乱、海量的原始点云,转化为简洁、有意义的几何边界。主要用处体现在以下几个方面: 1 机器人导航与避障 轮廓提取能实时勾勒出墙壁、家具、门窗等障碍物的边缘,帮助扫地机器人、服务机器人快速理…...

离线的银河麒麟系统部署ollama

一、概述 在离线的银河麒麟系统进行开发工作,总会遇到一些简单琐碎的问题,并且一些算法或者需要导入或者需要手敲,是一件很折磨的事。因此在服务器本地部署大模型,十分有必要。 二、部署方案 采用 docker ollama qwen2.5-code…...

手把手教你用Arsenal Image Mounter和VMware搞定Windows 11 E01镜像仿真,避开‘No Media’和卷影复制服务坑

实战指南:Windows 11 E01镜像仿真全流程与避坑手册当你需要复现一个Windows 11系统环境进行数字取证分析或软件兼容性测试时,E01格式的磁盘镜像是常见选择。但直接从镜像到可运行的虚拟机,这条路上布满了技术陷阱——从控制器类型不匹配导致的…...

Windows下玩转NVMe:除了Identify,用Intel MAS命令行还能做这些高级操作

Windows下NVMe高级管理:Intel MAS命令行工具实战指南对于追求极致存储性能的技术爱好者而言,NVMe SSD早已成为标配。但大多数人仅停留在基础使用层面,未能充分挖掘这些高速存储设备的潜力。本文将带你探索Intel Memory and Storage Tool&…...

别再手动敲命令了!用FinalShell一键连接Ubuntu虚拟机(附SSH服务完整配置流程)

FinalShell全自动连接Ubuntu虚拟机的终极指南每次启动Ubuntu虚拟机都要重复输入那十几条命令?还在为SSH连接失败而抓狂?作为一款国产SSH工具,FinalShell的图形化操作和内置文件管理功能确实能极大提升开发效率。但要让整个连接过程真正实现&q…...

AI规范编程:从SDD理念到Spec-Kit落地实践

文章目录一、SDD 诞生的背景:AI 时代软件工程的范式变革2.1、传统开发范式的痛点2.2、SDD 的核心定义与价值2.3、SDD 的发展历程二、SDD 工具对比分析:Spec-Kit、OpenSpec 与 Superpowers2.1 核心定位与设计理念对比2.2 技术架构与功能特性对比2.3 选型建…...

JWT认证深度解析:从签名原理到密钥轮换与灰度升级

1. 这不是“加个Token就完事”的流程,而是身份信任的完整传递链JWT认证流程(JSON Web Token)——这七个字在今天几乎成了后端接口开发的标配术语。但你有没有遇到过这样的情况:前端传了token,后端校验通过,…...

Outlook与Gmail OAuth 2.0 Proxy 实现原理与工程实践

1. 这不是“多此一举”,而是绕不开的现实堵点你写了个邮件聚合工具,用户点击“用 Outlook 登录”——页面跳转到微软登录页,输入账号密码,授权完成,回调地址收到一个 code。你兴冲冲拿它去换 access_token,…...

CentOS 7 SSH弱加密算法加固实战指南

1. 这不是“改个配置就完事”的活儿:一次真实漏洞扫描后的紧急响应现场上周五下午四点十七分,安全团队在例行基线扫描报告里标红了一行:“SSH服务启用弱加密算法(arcfour、3des-cbc、blowfish-cbc等),CVSS评…...

交互式测试与条件有效性:动态数据决策的统计可靠性保障

1. 交互式测试与条件有效性:从理论到实践的深度拆解在数据驱动的决策场景里,比如在线A/B测试、自适应临床试验或者强化学习的策略评估,我们常常面临一个核心矛盾:我们既希望根据不断涌入的数据动态调整分析策略(例如&a…...

Kali Linux安装全解析:UEFI/GPT适配、GRUB故障定位与三种部署场景

1. 这不是教你怎么点下一步,而是告诉你每一步背后在发生什么 Kali Linux 安装全攻略:3种方式常见报错速查(新手不踩坑)——这句话里,“全攻略”三个字最容易被误解。很多人以为“全”是指覆盖所有硬件型号、所有BIOS设…...

renameTo 的跨分区陷阱

# Java 文件重命名跨分区问题与解决方案## 结论使用 File.createTempFile 创建临时文件,再通过 file.renameTo(target) 移动到目标路径,在 **Linux** 上如果临时目录(/tmp)和目标目录不在同一分区,renameTo 会**静默返…...

基于无监督机器学习与静止系参数的伽马射线暴物理起源分类研究

1. 项目概述与核心思路伽马射线暴(GRB)是天文学中最具挑战性的谜题之一。这些来自宇宙深处的剧烈爆炸,在几秒到几分钟内释放的能量,可能超过太阳一生释放的总和。长久以来,我们一直试图回答一个核心问题:这…...

告别刻录光盘!用Rufus 4.5快速搞定Win10 U盘安装盘(保姆级图文指南)

用Rufus 4.5打造Win10 U盘安装盘的终极指南在数字时代,光驱已经逐渐退出历史舞台,但系统安装的需求依然存在。传统的光盘安装方式不仅速度慢,而且对硬件有要求。相比之下,U盘安装系统更加高效便捷。本文将详细介绍如何使用Rufus 4…...

AI多模态技术:从语音识别到AI结构化笔记是怎么实现的

最近发现一个挺有意思的事。越来越多的人开始用视频转笔记类的工具,把B站视频或者播客丢进去,几分钟就能拿到一份带小标题、有时间戳的图文讲义。我挺好奇这背后到底是怎么做到的。拆了一下技术链路,发现比想象中复杂不少。第一环&#xff1a…...

OpenAI RLHF的理解

OpenAI RLHF的理解 1. RLHF 的优化目标 objectiveE(x,y)∼DπθRL[rθ(x,y)−βlog⁡πθ(y∣x)πref(y∣x)]γ Ex∼Dpretrain[log⁡πθRL(x)] \text{objective} \mathbb{E}_{(x,y) \sim D_{\pi_\theta^{RL}}} \left[ r_\theta(x, y) - \beta \log \frac{\pi_\theta(y \mid …...

告别SSH连接玄学!用Finalshell管理多台Linux服务器时,如何一劳永逸搞定IP变动?

多服务器IP漂移难题的终极解决方案:Finalshell高效管理实践每次打开Finalshell准备工作时,发现熟悉的服务器连接突然变成一片红色"Connection timed out"——这种场景对于需要同时管理多台Linux服务器的运维人员和开发者来说,无异于…...

VMware17装CentOS踩过的那些坑:从镜像选择、密码设置到登录失败的完整避雷指南

VMware17安装CentOS实战避坑指南:从镜像选择到登录失败的深度解析第一次在VMware17上安装CentOS时,我像大多数新手一样,以为只要跟着教程一步步操作就能顺利完成。然而现实给了我一记响亮的耳光——从镜像下载到最终登录,几乎每个…...

卷积神经网络在天文图像中自动搜寻双活动星系核的工程实践

1. 项目概述:当AI遇见星空,寻找宇宙中的“双生子” 在浩瀚的宇宙中,超大质量黑洞的并合是星系演化剧本里的高潮章节。理论告诉我们,当两个星系在引力作用下最终合二为一时,它们中心的“巨兽”——超大质量黑洞——也会…...

从原理到调参:手把手教你用OpenCV玩转Canny边缘检测(Python代码详解)

从原理到调参:手把手教你用OpenCV玩转Canny边缘检测(Python代码详解)边缘检测是计算机视觉中最基础也最关键的预处理步骤之一。在众多边缘检测算法中,Canny算子以其优异的性能和稳定的表现,成为工业界和学术界公认的&q…...

LLM应用开发之向量数据库详解

摘要随着大语言模型(LLM)应用的快速发展,向量数据库作为AI时代的关键基础设施,正在成为RAG(检索增强生成)、语义搜索、智能推荐等场景的核心组件。本文将从向量嵌入的原理出发,深入讲解向量相似…...

Ventoy安装后U盘识别不了?手把手教你从下载(附国内镜像站)到成功引导Win10的完整避坑指南

Ventoy启动盘制作全攻略:从下载到成功引导Win10的避坑指南你是否曾经为了安装不同系统而反复格式化U盘?Ventoy这款国产开源工具彻底改变了传统启动盘制作方式,它允许你在同一个U盘上存放多个ISO镜像文件,无需反复格式化就能直接启…...