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 collections模块实例讲解
Apr 07 Python
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
Python 数据结构之队列的实现
Jan 22 Python
Python简单读取json文件功能示例
Nov 30 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
python实现图书借阅系统
Feb 20 Python
python多线程与多进程及其区别详解
Aug 08 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
python+opencv实现视频抽帧示例代码
Jun 11 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
Terran兵种介绍
2020/03/14 星际争霸
图象函数中的中文显示
2006/10/09 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
python使用post提交数据到远程url的方法
2015/04/29 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Pygame框架实现飞机大战
2020/08/07 Python
举例讲解Python装饰器
2020/12/24 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
Python面试题集
2012/03/08 面试题
医学院毕业生自荐信
2013/11/08 职场文书
领导的自我鉴定
2013/12/28 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
广告词串烧
2014/03/19 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2014年班组工作总结
2014/11/20 职场文书
2015年领班工作总结
2015/04/29 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书