实现对 SSH 的相关功能,例如:要对服务器进行远程管理的操作,就需要使用此模块

常用方法解释说明:

  • SSHClient:创建用于连接 ssh 服务器的实例
  • paramiko.AutoAddPolicy:设置自动添加主机密钥
  • ssh.connect:连接ssh服务器
  • ssh.exec_command:在ssh 服务器上执行指定命令

安装模块

[root@localhost xxx]# pip3 install paramiko # 使用pip,安装paramiko模块

[root@localhost xxx]# python3
>>> import paramiko  # 导入paramiko,远程连接模块
>>> ssh = paramiko.SSHClient()  # 声明一个远程连接的客户端对象
>>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 设置远程连接的提示【类似:ssh 远程连接时,提示'yes/no', 要选择yes的操作】
>>> ssh.connect('127.0.0.1', username='root', password='123456')  # 使用客户端对象ssh,连接服务器【指定服务器的IP地址,用户名和密码】
>>> result = ssh.exec_command('id root; id zhangsan')  # 将结果返回值保存到变量result中,返回值为:输入,输出和错误的类文件对象
>>> result  # 查看变量result中返回值信息【result为元组】
>>> len(result)

>>> result[0]  # 查看元组result中,【输入信息】的类文件对象
>>> result[1]  # 查看元组result中,【输出信息】的类文件对象
>>> result[2]  # 查看元组result中,【错误信息】的类文件对象
>>> out = result[1].read()  # 读取【输出信息】内容,赋值给变量out
>>> err = result[2].read()  # 读取【错误信息】内容,赋值给变量err
>>> out # 查看【输出信息】内容,以bytes字节方式显示
>>> err # 查看【错误信息】内容,以bytes字节方式显示
>>> out.decode() # 查看【输出信息】内容,使用decode(),转换为字符类型
>>> ssh.close() # 断开ssh连接

需求:

  • 创建 SSHClient 实例
  • 设置添加主机密钥策略
  • 连接 ssh 服务器
  • 执行指定命令
  • 在 shell 命令行中接收用于连接远程服务器的密码以及在远程主机上执行的命令

import  paramiko #导入模块parmiko
def rcmd(host, user, passwd, port=22, cmds=None):  # 定义函数rcmd(), 功能:实现ssh的远程连接,port=22 cmds=None 如果不传递参数,则使用默认值
   ssh = paramiko.SSHClient()  # 声明一个远程连接的客户端对象
   ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 设置远程连接的提示【类似:ssh 远程连接时,提示'yes/no', 要选择yes的操作】
   ssh.connect(host, username=user, password=passwd, port=port)  # 使用客户端对象ssh,连接服务器【指定服务器的IP地址,端口,用户名和密码】
   stdin, stdout, stderr = ssh.exec_command(cmds)  # 将元组中的元素,分别赋值给三个变量
   out = stdout.read()  # 读取输出信息和错误信息
   err = stderr.read()
   if out:  # 输出信息out为绿色显示,错误信息err为红色显示
       print('[%s]OUT:\n%s' %(host, out.decode()))
   if err:
       print('[%s]ERROR:\n%s' % (host, err.decode()))
   ssh.close()  # 关闭ssh的连接
if __name__ == '__main__':
# 调用函数,指定服务器IP地址,用户名,密码和要执行的命令,采用默认端口22
   rcmd('127.0.0.1', 'root', '123456', cmds='cat /etc/hosts')

Python 中paramiko模块应用相关推荐

  1. python中paramiko模块_如何使用python中paramiko模块?

    除了我们自身使用代码,或者是运行代码,其实,如果需要用到远程控制区操控代码的时候,也不是实现不了的,因为在python里有个极好用的模块就是我们今天的主题--paramiko,利用他,我们能够远程服务 ...

  2. python中paramiko模块的使用

    paramiko是python一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 1.可以远程操作服务器文件 例如: df:查看磁盘使用情况 mkdir:创建目录 mv/cp/m ...

  3. 【Python】Paramiko模块在Windows10中import ssl报错的处理方法

    上一篇文章[Python]Paramiko模块实现Linux服务器远程文件操作 介绍了如何通过Paramiko进行 sftp的操作,但最近遇到一个问题,换上家里的windows10电脑后,执行脚本时发 ...

  4. python paramiko使用_使用python的paramiko模块实现ssh与scp功能

    #1. 介绍 这篇文章简单地介绍了python的paramiko模块的用法,paramiko实现了SSH协议,能够方便地与远程计算机交互.简单的说,就是你在terminal下执行的如下语句,现在可以通 ...

  5. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

  6. python中Scipy模块求取积分

    python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...

  7. python中的time库安装步骤-python中time模块需要安装么

    time是python自带的模块,用于处理时间问题,提供了一系列的操作时间的函数. time模块中时间表现的格式主要有三种:(推荐学习:Python视频教程) timestamp时间戳,是以秒表示从& ...

  8. 关于python中requests模块导入问题-python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  9. python哪里下载import包-详解python中的模块及包导入

    python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函数 ...

最新文章

  1. 使用PHP导入Excel和导出数据为Excel文件
  2. chrome 技术篇-控制台切换框架,切换dom操作区
  3. css获取到指定元素的宽度,在回调返回宽度值
  4. dakai微信小程序 ios_iOSAPP跳转微信小程序
  5. java 获取oracle表结构_获取Oracle中所有表的列表?
  6. linux 编译字符设备驱动错误,linux字符设备驱动框架及编写流程
  7. C++工作笔记- C++中的动态类型与动态绑定、虚函数、运行时多态的实现
  8. clion 插件_IDEA必备插件系列-Rainbow
  9. 三元运算符(Java)
  10. Android Studio的Model代码插件开发
  11. 流处理框架Storm简介
  12. 用最新MySQL 8.0的源安装MySQL 5.7版本(CentOS 7环境下)
  13. dependencies.dependency.version' for org.hibernate:hibernate-validator:jar is missing.
  14. matable的作用
  15. torchvision.transforms.Pad和torchvision.transforms.functional.pad的区别
  16. 离散数学-数理逻辑知识整理(修改版)
  17. matlab armax和arima区别,ARMA和ARIMA的区别是什么?
  18. php基础教程推荐,php基础教程-绝对推荐
  19. C++报错无效的预处理命令include_Chapter2:从C/C++的编译原理说起
  20. 怎样使用CPropertyPage类和CPropertySheet类创建属性表

热门文章

  1. 如何利用物联网卡平台管理物联卡
  2. 【机器学习】Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting...
  3. GitLab官网安全更新(2022-06-30)
  4. C语言程序设计-餐厅点餐系统
  5. Altium designer中蛇形线走法和操作说明
  6. 计算机老师 杂事多,有人说,老师忙,都忙在了教学之外的杂事上。你怎么看?...
  7. 2023年五一数学建模竞赛ABC题思路资料汇总贴
  8. 错误记录----javac错误:javac不是内部或外部命令 也不是可运行的程序
  9. REVIT建模“族类别和族参数”中的“总是垂直”“基于工作平面”怎么用?
  10. 旧电脑搭建linux服务器