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函数参数*args**kwargs用法实例
Dec 04 Python
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python 性能优化技巧总结
Nov 01 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
Python list运算操作代码实例解析
Jan 20 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
python实现斗地主分牌洗牌
Jun 22 Python
搭建pypi私有仓库实现过程详解
Nov 25 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数据库密码的找回的步骤
2011/01/12 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
python实现五子棋游戏
2019/06/18 Python
Django stark组件使用及原理详解
2019/08/22 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
用python进行视频剪辑
2020/11/02 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
django中cookiecutter的使用教程
2020/12/03 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
主题酒店策划书
2014/01/28 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
整改通知书格式
2015/04/22 职场文书
刑事案件上诉状
2015/05/23 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript