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 04 Python
用Python给文本创立向量空间模型的教程
Apr 23 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
Tesserocr库的正确安装方式
Oct 19 Python
Django使用Celery加redis执行异步任务的实例内容
Feb 20 Python
python实现mean-shift聚类算法
Jun 10 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python中添加模块导入路径的方法
Feb 03 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浮点数的一个常见问题
2016/03/10 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
js+html制作简单验证码
2017/02/16 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
2016/12/18 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
Python找出最小的K个数实例代码
2018/01/04 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
遗体告别仪式答谢词
2014/01/23 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
工作会议简报
2015/07/20 职场文书
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python