Python paramiko模块使用解析(实现ssh)
作者:JasonMingHao 发布时间:2021-02-03 10:29:26
标签:python,paramiko,模块,实现,ssh
开发堡垒机之前,先来学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作
安装paramiko模块
pip3 install paramiko
基于用户密码方式
import paramiko
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname="10.0.0.200", port=22, username='root', password='1')
# 执行命令
# stdin:标准输入(就是你输入的命令);stdout:标准输出(就是命令执行结果);stderr:标准错误(命令执行过程中如果出错了就把错误打到这里),stdout和stderr仅会输出一个
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = (stdout.read().decode('utf-8')) # 这个有问题,如果执行的命令是错误的,会不显示错误,可以修改一下,先判断stdout有没有值,如果输出没有,就显示错误
print(result)
# 关闭连接
ssh.close()
基于公钥密钥连接
import paramiko
# 指定私钥路径
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='10.0.0.171', port=22, username='root', pkey=private_key)
# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()
print(result.decode())
# 关闭连接
ssh.close()
来源:https://blog.51cto.com/12643266/2422861


猜你喜欢
- 本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码,供大家参考,具体内容如下一、CNN模型结构输入层:
- itchat是一个开源的微信个人号接口,可以使用该库进行微信网页版中的所有操作,比如:所有好友、添加好友、拉好友群聊、微信机器人等等。详细用
- 1.聚合运算(1)使用内置的聚合运算函数进行计算1>内置的聚合运算函数sum(),mean(),max(),min(),size(),
- 在知识库的建立的时候,用普通VARCHAR2存放文章是显然不够的,只有区区4000的字节,放不了多少字, 而CLOB数据类型,则能最多存放8
- 删除文件os.remove( filename ) # filename: "要删
- 本文实例为大家分享了python实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下原图图片转换后的成果源码# -*- codi
- 自从接触了python,再到机器学习和深度学习,要学习的东西向越拉越多了!!!因为课题的需要接触了tensorflow,我直接就是一个好家伙
- asp之日期和时间函数示例可以使用日期和时间函数来得到各种格式的日期和时间函数语法说明示例NowNow()取得系统当前的日期和
- 列表UL或是OL中都有一个预设标记,这个标记可能是实点圆点,也可能是数字。在实际的应用中,我们需要去掉这个预设标记,但我们不清楚这个预设标记
- 常规的异常捕获方式在 Promise 提供了一个 .catch 方法用来捕获异常,假设有很多异步请求,通常会把 .catch 方法放在链式调
- 如何定义多对多关系Django 本身自带了一个很强大的ORM,支持自定义model并将其映射到数据库的表中model中可以定义各种类型的数据
- 本文以sql2012为例第一步,(查询日志中文件名和大小):USE 数据库名GOSELECT file_id, name,size,* FR
- 问题:如何经过convTransposed1d输出指定大小的特征?import torchfrom torch import nnimpor
- 一、普通进度条示例代码import sysimport timedef progress_bar(): for i in ran
- PHP count() 函数实例计算 car 节点的子节点个数:<?php $xml=<<<XML<cars&
- 一、为图片添加水印 代码如下:<% Dim Jpeg ””//声明变量 Set Jpeg = Server.CreateObject(
- 本文实例为大家分享了vue+axios+java实现文件上传的具体代码,供大家参考,具体内容如下背景vue.js + axios + ele
- 不要使用Logrus这其实和泛型有关。因为Go语言是一门强类型的静态语言,所以你不可能像NodeJS或者PHP那样绕过数据类型。那如果我们还
- 本文介绍了关于redux-saga中take使用方法详解,分享给大家,具体如下:带来一个自己研究好久的API使用方法.redux-saga中
- Canal是阿里巴巴旗下的一款开源项目,利用Java开发。主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持M