connect time out 获取token失败_使用python脚本SSH远程登录网络设备获取信息(1)

python中使用SSH登录设备可以使用paramiko库中的SSHClient组件,paramiko库为第三方库,在使用时需要先安装改库并引入使用,安装时使用 pip进行安装,如下:

80244590937248be8203f78b3b569f24.png

pip 安装库文件

paramiko库的SSHClient基本使用:

①connect()方法主要用于与服务器之间连接认证时的参数传递,主要参数有:

hostname:需要连接的目的主机。

port:SSH使用的目标端口,默认22

username:需要验证的用户名

password:需要验证的密码

②set_missing_host_key_policy():当连接的远程主机没有本地主机密钥时会弹出是否接受的对话框,当使用AutoAddPolicy 自动添加主机名及主机密钥到本地HostKeys对象时,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认;当使用WarningPolicy 时会记录一个未知的主机密钥的python警告并接受,当使用RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置,在默认配置下使用的是此选项。

time库主要用于时间戳的获取

本次以单台设备作为测试目标,用脚本登录到设备获取配置文件。

本次实验拓扑如下:

a313923fa8a25dddb1af8a348a08d0a5.png

测试拓扑

1、引入库文件,我们使用paramiko库和time库

import paramiko

import time

2、定义登录使用的参数

ip='10.0.1.254'

username='localadmin'

password='admin@123'

3、使用open方法打开或者创建一个log文件,用于存储收集到的信息

log=open('G:/TEST/log.log','w')

open方法给出路径后,如果有相关文件,会打开相关文件进行写操作,如果没有回创建新文件进行操作。

4、初始化一个SSH客户端

ssh=paramiko.SSHClient()

5、定义在没有本地key的情况下的处理情况,使用自动添加

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

6、连接服务器

ssh.connect(hostname=ip,username=username,password=password)

7、调用ssh的shell命令行属性进行命令操作

com=ssh.invoke_shell()

首先向设备发送一个回车,准备进行输入

com.send('')

time.sleep(0.5)

com.send('screen-length 0 temporary ') //此命令是为了能够一页显示配置文件

time.sleep(1) //命令敲完后延时一段时间再继续输入其它命令

com.send('dis cu ')

time.sleep(2)

8、定义一个变量,用于接收ssh返回的信息

result=com.recv(65535).decode('utf-8') //返回的数据为字节集,是一整串的字符,所以需要把符号转换为普通文字,使显示正常

9、把接收到的数据写到log文件里

log.write(str(result)) //需要注意的是log.write()的参数是文本型,而接收到的数据是字节集,所以需要进行类型转换

10、关闭不需要的进程

ssh.close()

log.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值