Python paramiko模块使用解析(实现ssh)


Posted in Python onAugust 30, 2019

开发堡垒机之前,先来学习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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
Python异常处理例题整理
Jul 07 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Python安装selenium包详细过程
Jul 23 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
Python如何使用字符打印照片
Jan 03 Python
python处理RSTP视频流过程解析
Jan 11 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Python基础之数据类型知识汇总
May 18 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 #Python
python实现生成Word、docx文件的方法分析
Aug 30 #Python
python解析yaml文件过程详解
Aug 30 #Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 #Python
python数据持久存储 pickle模块的基本使用方法解析
Aug 30 #Python
python 命令行传入参数实现解析
Aug 30 #Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 #Python
You might like
小偷PHP+Html+缓存
2006/11/25 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Python实现微信好友的数据分析
2019/12/16 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
资源工程专业毕业生求职信
2014/02/27 职场文书
食品安全汇报材料
2014/08/18 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
世界环境日活动总结
2015/02/11 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python