初识Paramiko

简介:

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。跟常用软件xshell 、xftp功能一样,但是可以连接多台服务器,进行复杂的操作。

安装 :

pip install PyCrypto  (PyCrypto是使用Python编写的加密工具包)

pip install paramiko /easy_install paramiko

paramiko主要包含核心组件,一个是SSHClient类,另一个是SFTPClient类

一、SSHClient类的主要函数:

1、Connect方法

Connect实现了远程SSH的连接并校验。

Connect(self,hostname,port,username,password,pkey,key_filename,timeout,allow_agent,look_for_keys ,compress)

参数含义:

Hostname  str :主机ip

Port  int :端口

Username  str:用户名

Password  str :密码

Pkey  pkey: 秘钥

Timeout  float: 超时时间

Allow_agent  boool :当为flase时,禁用连到ssh代理

Look_for_keys  bool : flase时,禁用在~/.ssh中搜索秘钥文件

Compress    bool : true时打开压缩。

2、exec_command方法

远程命令执行的方法

exec_command(self,command,bufsize=-1)

参数:

Command  str :命令串

Bufsize  int:文件缓冲区大小,默认-1没有限制

3、load_system_host_keys

加载本地公秘钥校验文件,默认为~/.ssh/known_hosts

load_system_host_keys(self,filename)

fielname  str :制定远程主机公钥记录文件

4、set_missing_host_key_policy

连接主机没有本地主机秘钥或者HostKeys对象时策略,目前支持三种:AutoAddPolicy,RejectPolicy,WarningPolicy

AutoAddPolicy:自动添加主机名以及主机秘钥

RejectPolicy(默认):自动拒绝未知的主机名和秘钥

WarningPolicy: 用于记录一个未知主机秘钥的Python警告

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

5、简单案例

# -*-coding:utf-8-*-

import paramiko

username = ‘root‘

password = ‘Aliyun6688xyz‘

hostname = ‘119.29.0.208‘

port = 22

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在know_hosts文件中的主机

ssh.connect(hostname,port,username, password)

stdin, stdout, stderr = ssh.exec_command("uptime")

print stdout.readlines()

ssh.close()

二、SFTPClient类——实现远程操作文件

1、from_transport方法

创建一个已经连通的sftp客户端通道

2、put函数

上传文件到服务器

Put(self,localpath,remotepath,callback=none,confirm=none)

Localpath  str : 上传文件本地源

Remotepath  str : 远程路径

Callback(function(int,int)) 获取已经接受的字节数以及总传输字节数。

Confirm  bool : 文件上传完毕后是否调用start()函数,以便确认文件大小。

3、get方法

从远程主机端下载文件同put

4、其他方法

Mkdir 创建目录 sftp.mkdr(‘/home/user’,0755)

Remove 删除主机端指定目录 sftp.remove(‘/home/user’)

Rename 从命名服务端的文件或者目录 sftp.rename(“/home/test.sh”,”/home/newtest.sh”)

Listdir  获取远程SFTP服务器端指定的目录列表,返回list形式  sftp.listdir(“/home”)

Stat 获取远程主机指定文件信息 sftp.stat(“/home/test.sh”)

5、简单测试代码

t = paramiko.Transport((hostname,port))

t.connect(username = username, password = password)

sftp = paramiko.SFTPClient.from_transport(t)

remotepath=‘/tmp/test.txt‘

localpath=‘/test.txt‘

sftp.get(localpath,remotepath)# get是获取函数,put函数是上传函数

t.close()

时间: 2024-10-21 02:39:10

初识Paramiko的相关文章

初识Python,望君多多关照

在学习Python之前,我们接触过数据结构和网页制作.前者让我们学习如何把C语言运用的更加整齐规范,而后者让我们亲身学习如何运用所学,制作一个静态网页.通过这些课程的学习,让我对C语言产生了比较大的压力,以至于对编程.对这学期的Python课程都有一种如临大敌的感觉. 但是真的学习了这门课程,体会了编码过程中的一些固定运用方法和套路之后,也许过程中对这门课程隐隐约约产生了一点点朦胧的感觉,仿佛他也并没有想象中的那么困难,起码现在的学习让我认为,他可能没有C语言那么繁琐和麻烦.当然,以一个初学者的

堡垒机之paramiko模块

一.paramiko简单介绍 场景预设: 很多运维人员平时进行维护linux/unix主机时候,无非通过ssh到相应主机操作,那么一旦主机有成千上百台,那该如何应对,这时候我们需要批处理工具,基于python的工具有ansible.salt,而ansible的核心则是介于paramiko. 安装: pip install paramiko或 easy_install paramiko paramiko依赖第三方的Crypto,Ecdsa和pyhton-devel 核心组件: SSHclient类

初识数组排序!!!!

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>初识数组排序</title> <!--调试成功--> <style type="text/css"> *{ padding:0; margin: 0; } li,ul{ list-style: none; } #p

初识操作系统和linux

初识操作系统和linux 1.计算机系统由硬件系统和软件系统两大部分组成:是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动.高速地处理,然后把处理结果输出的现代化智能电子设备. 2.世界上第一台计算机是1946年诞生在美国宾州大学. 3.冯·诺依曼体系结构:1946年数学家冯·诺依曼于提出计算机硬件系统由运算器.控制器.存储器.输入设备.输出设备.摩根定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍.现在计算机技术进本很难遵

JAVA 初识类加载机制 第13节

JAVA 初识类加载机制 第13节 从这章开始,我们就进入虚拟机类加载机制的学习了.那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class文件,再由虚拟机解释给当前的操作系统去执行.这些过程都是我们看不见的,我们能看见的也就是一个.class文件.既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文件的过程就是类加载了. 所以,总结来说就是:虚拟机将.class文件从磁盘或者其他地

初识React

原文地址:北云软件-初识React 专注于UI 在MVC分层设计模式中,react常被拿来实现视图层(V).React不依赖于技术栈的其他部分,因此可以方便的在现有项目中尝试用它来实现一个小特性. 虚拟DOM React从DOM中抽象出来,给出一种更简洁的编程模型,且性能表现更好.能够通过NodeJS实现服务端渲染,通过React Native开发原生app. 数据流React实现单向.响应式数据流,减少boilerplate且比传统数据绑定更容易理解. 简洁的组件React的组件都实现了一个r

泛型的几种类型以及初识webform

今天学习的可以分为两类吧,但是学习的都是比较抽象的,不太容易掌握吧.首先我们大部分时间学习了泛型,泛型的委托,泛型接口以及枚举器,迭代器,扩展方法:最后简单的认识了webform,实现了一个简单的功能. 一.泛型 定义:泛型(generic)可以软糖多个类型共享一组代码,泛型允许我们声明类型参数化.可以用不同的类型进行实例化,说白了,就是可以用类型占位符,创建具体类型致命的真实概念.C#中提供了五种泛型,类,结构,接口,委托和方法.下面举例说明可能更容易理解, class MyStack<T>

最新计算机技术与管理科学应用专家——初识ERB

ERB管理系统:英文全称Enterprise Resource and Behavior,英文简称:ERB,中文名全称:企业资源与行为管理系统.ERB是由理文企业管理顾问有限公司首席管理师,现任商翼ERB企业管理系统项目总监吴志华先生,于2010年9月首先提出的.ERB不再单以供应链管理作为系统应用的基础,而是以企业行为与企业资源规划的最佳结合作为系统应用设计的核心基础,强调企业行为的规划.执行.监督与追溯,强调企业管理水平与员工素养的持续提升:提供企业行为与企业资源管理最佳结合的整体应用解决方

[OpenGL]环境搭建以及OpenGL初识

想往游戏行业发展的话,经常被提及到的就是OpenGL和DirectX,这两者听起来感觉是一门挺高深的技术,今天我也开始摸索学习OpenGL,那么OpenGL到底是什么?它和DirectX有什么区别和联系? OpenGL初识 OpenGL只是一套图形函数库 DirectX包含图形.声音.输入.网络等模块. 但就图形而论,DirectX的图形库性能不如OpenGL,OpenGL稳定,可以跨平台使用,DirectX只支持Windows平台,所以OpenGL还是有它的优势!OpenGL ES是OpenG