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 错误和异常小结
Oct 09 Python
python和bash统计CPU利用率的方法
Jul 10 Python
python实现web方式logview的方法
Aug 10 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
如何在Python中编写并发程序
Feb 27 Python
分享vim python缩进等一些配置
Jul 02 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
Django中template for如何使用方法
Jan 31 Python
Python Pandas 删除列操作
Mar 16 Python
Python实现简单得递归下降Parser
May 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
PHP 替换模板变量实现步骤
2009/08/24 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
Yii使用技巧大汇总
2015/12/29 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
linux 下selenium chrome使用详解
2020/04/02 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
盛大笔试题
2016/11/05 面试题
建筑工程毕业生自我鉴定
2014/01/14 职场文书
基于Redission的分布式锁实战
2022/08/14 Redis