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实现在控制台输入密码不显示的方法
Jul 02 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Python学生成绩管理系统简洁版
Apr 05 Python
python3.5绘制随机漫步图
Aug 27 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
python获取响应某个字段值的3种实现方法
Apr 30 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
详解python的super()的作用和原理
Oct 29 Python
python基于openpyxl生成excel文件
Dec 23 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
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
JavaScript运算符小结
2015/06/03 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
js中作用域的实例解析
2017/03/16 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
python实现多进程代码示例
2018/10/31 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python 获取url中的参数列表实例
2018/12/18 Python
使用pip安装python库的多种方式
2019/07/31 Python
python实现KNN分类算法
2019/10/16 Python
python默认参数调用方法解析
2020/02/09 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
大数据分析用java还是Python
2020/07/06 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
Haggar官网:美国男装品牌
2020/02/16 全球购物
水污染治理专业毕业生推荐信
2013/11/14 职场文书
人事主管岗位职责
2014/01/30 职场文书
客服部工作职责范本
2014/02/14 职场文书
工程负责人任命书
2014/06/06 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android