python3 基于paramiko 实现ssh连接并执行命令

前言

由于最近在研究网络设备巡检工具开发,需要基于ssh来收集各个网络设备的数据,然后再生成报表,目前是第一步,先要能收集到数据,所以基于python3 的paramiko 库来实现,这个库不仅可以实现ssh还可以实现sftp的功能哦,如果你闲的无聊,又觉得那些CRT或xshell收费无聊,可以写一个同样的工具。

环境准备

python3 安装如下包,我是在centos 7环境下测试的
pip3 install ecdsa
pip3 install Crypto
pip3 install paramiko

代码部分

# -*- coding: utf-8 -*-
import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在known_hosts文件上的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname="192.168.80.130", port=22, username="root", password="Aa123456")
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df -h')
# 获取结果
result = stdout.read().decode()
# 获取错误提示(stdout、stderr只会输出其中一个)
err = stderr.read()
# 关闭连接
ssh.close()
print(result)

程序结果

之前由于没有加decode()这个方法进行编码害得我折腾好久,一直显示乱码。
在这里插入图片描述

原创文章 107 获赞 120 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_38228830/article/details/102907482
今日推荐