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 相关文章推荐
python设置检查点简单实现代码
Jul 01 Python
基于Python实现文件大小输出
Jan 11 Python
python生成器表达式和列表解析
Mar 10 Python
详解Python多线程
Nov 14 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
让代码变得更易维护的7个Python库
Oct 09 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
Python实现密码薄文件读写操作
Dec 16 Python
Python基础之高级变量类型实例详解
Jan 03 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
Python实现AI自动抠图实例解析
Mar 05 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中的strpos使用示例
2014/02/27 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
python字符串的方法与操作大全
2018/01/30 Python
Python pandas常用函数详解
2018/02/07 Python
详解Python核心对象类型字符串
2018/02/11 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
个人求职简历的自我评价
2013/10/19 职场文书
生产总经理岗位职责
2013/12/19 职场文书
教师节主持词开场白
2015/05/29 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript