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通过命令开启http.server服务器的方法
Nov 04 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 Python
python动态进度条的实现代码
Jul 03 Python
python实现邮件发送功能
Aug 10 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python decimal模块使用方法详解
Jun 08 Python
Python 如何定义匿名或内联函数
Aug 01 Python
python 中的@运算符使用
May 26 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
php URL验证正则表达式
2011/07/19 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
深入分析js中的constructor和prototype
2012/04/07 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
Python入门篇之函数
2014/10/20 Python
python根据出生年份简单计算生肖的方法
2015/03/27 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
用Python解决计数原理问题的方法
2016/08/04 Python
python将txt文件读取为字典的示例
2018/12/22 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
描述内存分配方式以及它们的区别
2016/10/15 面试题
干部培训自我鉴定
2014/01/22 职场文书
党支部承诺书范文
2014/03/28 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
七年级英语教学反思
2016/02/15 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server