• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

通过python批量下载交换机等设备的配置文件

8小时前提问
  • 0关注
  • 0收藏,46浏览
粉丝:0人 关注:0人

问题描述:

如何通过python脚本ssh登录到交换机,最好是本地电脑生成密钥,然后把公钥上传到交换机上,通过密码+密钥认证,认证通过后才可以下载交换机配置文件

2 个回答
粉丝:12人 关注:9人

步骤1:生成本地密钥对
本地执行ssh-keygen -t rsa生成密钥(默认路径~/.ssh/id_rsa私钥、id_rsa.pub公钥)。
步骤2:上传公钥到交换机
通过SSH密码登录交换机,执行:
[Switch] ssh server enable
[Switch] local-user admin class manage
[Switch-luser-admin] service-type ssh
[Switch-luser-admin] authorization-attribute user-role network-admin
[Switch-luser-admin] public-key import ssh username admin from file tftp://x.x.x.x/id_rsa.pub # x.x.x.x为本地电脑IP,需确保交换机能访问
[Switch-luser-admin] password simple YourPassword # 保留密码认证,实现密码+密钥双因子
[Switch-luser-admin] quit
步骤3:Python脚本实现(依赖paramiko库)
python
import paramiko
def get_switch_config(ip, username, password, private_key_path, save_path):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
private_key = paramiko.RSAKey.from_private_key_file(private_key_path)
密码+密钥认证
ssh.connect(ip, username=username, password=password, pkey=private_key)
执行display current-configuration命令
stdin, stdout, stderr = ssh.exec_command('display current-configuration')
cOnfig= stdout.read().decode()
保存配置到本地
with open(save_path, 'w') as f:
f.write(config)
ssh.close()
批量调用示例
devices = [
{'ip': '192.168.1.1', 'username': 'admin', 'password': 'YourPassword', 'save_path': 'config_192.168.1.1.txt'},
更多设备...
]
private_key_path = '~/.ssh/id_rsa' # 本地私钥路径
for dev in devices:
get_switch_config(dev['ip'], dev['username'], dev['password'], private_key_path, dev['save_path'])
说明
需先安装paramiko:pip install paramiko
确保交换机开启SSH服务,且本地与交换机网络可达
双因子认证通过password+pkey参数实现,增强安全性

暂无评论

粉丝:23人 关注:2人

  1. 密钥准备:本地用ssh-keygen生成加密 RSA 公私钥,私钥设解锁密码,公钥上传至 H3C 交换机;
  2. 交换机配置:开启 SSH、导入客户端公钥,创建管理账号并开启密码 + 密钥双重认证password-publickey),两项校验缺一不可;
  3. Python 实现:基于 paramiko,连接时同时传入账号密码 + 加密私钥完成双因子登录,交互式 Shell 关闭分页后拉取完整配置;
  4. 批量逻辑:通过 csv 维护设备清单,自动按日期创建文件夹,每台设备单独生成 IP + 时间命名的配置文件;
  5. 适配 & 排错:脚本默认适配 H3C,华为 / 思科替换对应分页与查配置命令;认证失败核对账号、私钥、交换机认证模式,配置截断延长读取等待时间;
  6. 可选优化:可扩展多线程、本地日志、文件校验、远端 SFTP 上传备份包。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明