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简单格式化时间的方法【strftime函数】
Sep 18 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
深入解析神经网络从原理到实现
Jul 26 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
表彰先进集体通报
2014/01/12 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript