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关闭windows进程的方法
Apr 18 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
Python 常用string函数详解
May 30 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
python字符串替换re.sub()实例解析
Feb 09 Python
django从后台返回html代码的实例
Mar 11 Python
python3 logging日志封装实例
Apr 08 Python
python中的错误如何查看
Jul 08 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
使用gunicorn部署django项目的问题
Dec 30 Python
Python命令行参数argv和argparse该如何使用
Feb 08 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
python条件和循环的使用方法
2013/11/01 Python
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
什么是Remote Module
2016/06/10 面试题
保送生自荐信范文
2013/10/06 职场文书
怎么写好自荐信
2013/10/30 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
门面房租房协议书
2014/08/20 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
导游词之上海豫园
2019/10/24 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL