Python的paramiko,实现ssh
使用默认的方式(2017年写的版本)
1、最简单的使用paramiko登录远程机器执行一些命令,学习实验楼的paramiko记录下来,第一次使用ConfigParser这个库,对于封装这些还是不太熟悉,只能慢慢来,嘿嘿嘿
这是python脚本文件,还有一个变量文本
- import paramiko
- import ConfigParser
- class ParamikoClient:
- def __init__(self,config_str):
- self.config = ConfigParser.ConfigParser()
- self.config.read(config_str)
- self.client = paramiko.SSHClient()
- self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- def connet(self):
- try:
- self.client.connect(hostname=self.config.get('ssh','host'),port=self.config.getint('ssh','port'),username=self.config.get('ssh','username'),password=self.config.get('ssh','password'))
- except Exception,e:
- print e
- try:
- self.client.close()
- except:
- pass
- def run_cmd(self,cmd_str):
- stdin, stdout, stderr = self.client.exec_command(cmd_str)
- print stdout.read()
- client = ParamikoClient('config.ini')
- client.connet()
- client.run_cmd('date')
config.ini文件
- [ssh]
- host = 192.168.1.101
- port = 22
- username = root
- password = 123456
使用自定义秘钥实现远程登录执行命令(2019年9月版本)
1、代码如下
- import paramiko
- '''
- Author: LiLe
- Date: 20190905
- Version: V2.0
- Contact: 15274326058
- Description: Paramiko库登录远程主机执行命令并返回结果
- Document: http://docs.paramiko.org/en/2.6/
- '''
- class ParamikoClient:
- def __init__(self, config):
- self.host = config['host']
- self.port = config['port']
- self.username = config['username']
- self.key = config['key']
- # 连接
- def connects(self):
- try:
- # 使用自定义秘钥
- private_key = paramiko.RSAKey.from_private_key_file(self.key)
- self.client = paramiko.SSHClient()
- self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- self.client.connect(hostname=self.host, port=self.port, username=self.username,pkey=private_key)
- except Exception as err:
- print(err)
- # 关闭
- def close(self):
- try:
- self.client.close()
- except:
- pass
- # 执行命令
- def exec_command(self, cmd):
- stdin, stdout, stderr = self.client.exec_command(cmd)
- return stdout.read()
- if __name__ == '__main__':
- paramiko_config = {
- 'host': '10.*.*.*',
- 'port': 22,
- 'username': 'lile',
- 'key': 'lile.pem',
- }
- paramik = ParamikoClient(paramiko_config)
- paramik.connects()
- result = paramik.exec_command("date")
- print(result)
- paramik.close()
注意事项
1、有时候执行ifconfig等命令时,返回的值为空值
原因:ifconfig等命令需要写全路径,把环境变量也加上
- paramik.exec_command("/sbin/ifconfig eth0 |grep inet |awk -F' ' '{print $2}'")
Python的paramiko,实现ssh的更多相关文章
- (转)python通过paramiko实现,ssh功能
python通过paramiko实现,ssh功能 1 import paramiko 2 3 ssh =paramiko.SSHClient()#创建一个SSH连接对象 4 ssh.set_missi ...
- Python的paramiko模块ssh操作
SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import paramiko # 创建 ...
- python paramiko模块SSH自动登录linux系统进行操作
1). Linux系统首先要开启SSH服务:service ssh status 如果没安装的话,则要:apt-get install openssh-server service ssh resta ...
- python paramiko模拟ssh登录,实现sftp上传或者下载文件
Python Paramiko模块的安装与使用详解 paramiko是短链接,不是持续链接,只能执行你设定的shell命令,可以加分号执行两次命令. http://www.111cn.net/phpe ...
- 使用python的Paramiko模块登陆SSH
使用python的Paramiko模块登陆SSH paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. python的paramiko模块 ...
- SSH协议的Python实现paramiko
目录 paramiko安装 SSHClient类与SFTPClient类 SSHClient类的方法 SFTPClient类的方法 paramiko的基本使用 paramiko.SSHClient两种 ...
- python paramiko实现ssh上传下载执行命令
paramiko ssh上传下载执行命令 序言 最近项目经常需要动态在跳板机上登录服务器进行部署环境,且服务器比较多,每次完成所有服务器到环境部署执行耗费大量时间.为了解决这个问题,根据所学的执行实现 ...
- python中paramiko模块的使用
paramiko是python一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.可以远程操作服务器文件 例如: df:查看磁盘使用情况 mkdir:创建目录 mv/cp/mk ...
- python安装paramiko模块
一.简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...
- Python之paramiko基础
一.Paramiko模块 paramiko是一个自由和开放源码模块使用,实现SSH2协议安全(认证和加密)连接到远程计算机. 二.windwos下安装paramiko模块 #在DOS命令行执行如下命令 ...
随机推荐
- [原][工具][windows10安装][0x800F081F]windows 10 如何离线安装.net framework3.5 || 安装出现错误代码0x800F081F时如何解决
参考解决方案:https://zhidao.baidu.com/question/1896669183365806820.html?fr=iks&word=win10%B0%B2%D7%B0+ ...
- 【文献08】多移动机器人轨迹跟踪控制系统设计与实现-运动学ADRC控制
参考: 陈俊, 俞立, 滕游. 多移动机器人轨迹跟踪控制系统设计与实现[J]. 计算机测量与控制, 2017(7). https://drive.wps.cn/view/p/28819052019?f ...
- [数据结构]P2.1 二叉搜索树
二叉树就是每个节点最多有两个分叉的树.这里我们写一写一个典型的例子二叉搜索树,它存在的实际意义是什么呢? 在P1.1链表中,我们清楚了链表的优势是善于删除添加节点,但是其取值很慢:数组的优势是善于取值 ...
- spark的二次排序
通过scala实现二次排序 package _core.SortAndTopN import org.apache.spark.{SparkConf, SparkContext} /** * Auth ...
- Orchard是如何呈现内容的
首先Orchard是一个建立在ASP.NET MVC框架上的CMS应用框架.Orchard在呈现内容的时候也遵循MVC的规律,也是通过Controller来处理Url请求并决定用那个View来呈现那种 ...
- 『Python』socket网络编程
Python3网络编程 '''无论是str2bytes或者是bytes2str其编码方式都是utf-8 str( ,encoding='utf-8') bytes( ,encoding='utf-8' ...
- python----常用模块(random,string,time&datetime,os,sys,xpinyin(拼音))
一.模块.包 1.1 什么是模块 在python中,一个.py文件就构成一个模块,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 1.2 什么是包 ...
- python url 下载并保存
方法一:用urllib import jsonimport urllib url_model='{"version":"2","url":& ...
- java项目改为web项目
1.进入项目目录,可看到.project文件,打开. 2.找到<natures...</natures代码段. 3.在第2步的代码段中加入如下标签内容并保存: <nature& ...
- java接口中的继承
java.util.concurrent包下的 public interface BlockingDeque<E> extends BlockingQueue<E>, Dequ ...