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入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
基于python实现聊天室程序
Jul 27 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
Python实现打包成库供别的模块调用
Jul 13 Python
python 6行代码制作月历生成器
Sep 18 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
pandas中pd.groupby()的用法详解
Jun 16 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里得到前天和昨天的日期的代码
2007/08/16 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
python 读写中文json的实例详解
2017/10/29 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
python打开文件的方式有哪些
2020/06/29 Python
作为网站管理者应当如何防范XSS
2014/08/16 面试题
大学生优秀团员事迹材料
2014/01/30 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书