初识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()

转载于:https://www.cnblogs.com/ouyangxiafei/p/6096770.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gpg96244qs1屏驱动起来了

驱动屏需要注意的地方: 1、首先一定要保证通信、当然电路图什么的肯定是确保是好的1.1 这个屏用的是SPI通信、验证通信的方法是读寄存器里面的一个默认值,如果读出来的是原来的默认值的话,就说明是正确的、用示波器看SPI线的数据线、有一个高…

Spring.io本地服务器解决超时问题

建本地服务器的方法,详情参考官方说明:https://github.com/spring-io/initializr 打开一看是英文,而且你鼓捣半天不一定成功,没事,我已经搭建好了可执行jar包给你下载使用!你只需要java -jar,如…

lgg6 android 9,LG G6的18:9屏幕用起来到底是什么样

前不久LG公布了全新18:9屏幕,据他们称这块屏幕是特意为智能手机而设计,如今传言也指向LG G6将会成为首款使用这块屏幕的旗舰,那么为何LG会放弃智能手机坚持的16:9转而使用18:9,体验又会是什么样呢?最近LG公…

屏上有一层紫色(正在找原因)

注: 1、这两天一直在找这个原因、5150控制成功、屏驱动成功、可是为什么屏上面有一层紫色的覆盖住了呢、非常的让我感到不解2、如果什么也不输入、解码出来的信号在TFT上显示是紫色、我现在是不怎么清楚是屏的原因还是解码的原因

Cadence PCB SI

Cadence PCB信号完整性 (SI) 和电源完整性技术(PI)提供了可调整、高性价比并且支持前仿真和后仿真的系统互联设计和分析环境。 Cadence PCB信号完整性 (SI) 和电源完整性技术(PI)提供了可调整、高性价比并且支持前仿真和后仿真的系统互联设计和分析环境。Cadence PCB SI和PI产品…

java1.8安装

简单说下,jdk1.8*的下载,见http://www.cnblogs.com/zlslch/p/5658383.html 双击jdk-8u60-windows-x64.exe运行程序 欢迎使用Java SE开发工具包8 Update 60的安装向导界面,点击“下一步” 选择安装可选功能界面,默认安装&#xff0…

图像正确(相当于这个小项目就要结尾了)

到这里这个小项目就要进入尾声了 1、在其中遇到了很多问题、也听了部门前辈的指点、有的人说的正确、有的人说的不沾边、这时候真的是需要自己去衡量哪个人说的才是自己所需要的、2、关于TVP5150的配置和GPGTFT的配置、刚开始的时候都不知道到底是哪一个配置会出了什么问题、后…

华为升级harmonyos的机型名单,华为智慧屏HarmonyOS 1.0.1.50更新机型和方法

华为智慧屏 V65/V65i/V65尊爵版/V75 新版本发布HarmonyOS 1.0.1.50一、 适配机型:华为智慧屏 V65 4G64G(HEGE-560)华为智慧屏 V65i 4G32G(HEGE-560B)华为智慧屏 V65尊爵版 4G128G(HEGE-560S)华为智慧屏 V75 4G64G(HEGE-570)二、 更新方式:智慧屏系…

010. 使用.net框架提供的属性

C#允许在类和类成员上声明特性(类), 可在运行时解释类和类的成员. 这个特性也称为属性, 使用Attribute.下面演示如何使用.net框架提供的属性. 1 using System; 2 using System.Reflection;3 public partial class _Default : System.Web.UI.Page 4 {5 //自定义属性类6 …

Pytorch出现RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)

这个问题的主要原因是输入的数据类型与网络参数的类型不符。 Input type为torch.cuda.FloatTensor(GPU数据类型), weight type(即net.parameters)为torch.FloatTensor(CPU数据类型) 有以下两种…

LCD-DBI接口与DPI接口与DSI接口

(1)DBI接口 A,也就是通常所讲的MCU借口,俗称80 system接口。The lcd interface between host processor and LCM device list as below,The LCM driver will repeated update panel display。MCU借口通过并行接口传输控制命令和数…

ios截屏 u3d导出Xcode工程截屏

在ios原生程序里面 全屏截屏 UIWindow *window [[UIApplication sharedApplication] keyWindow];  //下边是经典的4步 UIGraphicsBeginImageContext(window.frame.size);  //打开画布,并设定大小 [window.layer renderInContext:UIGraphicsGetCurrentContext()…

【Pytorch神经网络实战案例】03 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-测试方法

import torch import torchvision from PIL import Image from torch import nnimage_path"./test_img/dog.png" imageImage.open(image_path)print(image) #size406x479 所以需要转换# png格式是四个通道,除了RGB三通道外,还有一个透明度通道…

linux我回来了

如题 我想说、linux我又要回来了、不是为了什么就是为了原先刚开始喜欢你的感情一样离开了这么久、学了几行JAVA、搞了一下安卓、不过我还是回到了linux庆幸的是、当初我把我的系统备份了下来、没有删除、所以一切都感觉很熟悉

【Pytorch神经网络实战案例】02 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-方法②

import torch import torchvision from torch import nn from torch.utils.tensorboard import SummaryWriterfrom torch.utils.data import DataLoader# 取消全局证书验证(当项目对安全性问题不太重视时,推荐使用,可以全局取消证书的验证&am…

三、Unity中的鼠标、键盘的获取

在Unity中,我们经常会处理点击鼠标的事件检测和键盘的事件检测。所以,我觉的应该将这个小知识点进行一个整理。 1.按下键盘的事件检测: 1.GetKey: 当通过名称指定的按键被用户按住时返回true ------ 持续按下,会一直…

三星的S3C2440A 存储器控制器

对存储器的BANK那个东西我一直是一知半解,感觉很模糊、关于ARM的体系结构可能学得不够深入 三星S3C2440A的存储器控制器 s3c2440A 的存储器控制器提供访问外部存储器所需的存储器控制信号。 s3c2440A 的存储器控制器有以下特性: - 大小端(通过软件选择) - 地址空间:每个ba…

【Pytorch神经网络实战案例】01 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-方法①

import torch import torchvision from torch import nn from torch.utils.tensorboard import SummaryWriterfrom torch.utils.data import DataLoader# 取消全局证书验证(当项目对安全性问题不太重视时,推荐使用,可以全局取消证书的验证&am…

html5自动调整布局,html5移动端自适应布局的实现

场景:为适应各种大小的屏幕自适应布局我知道的两种方式1.使用媒体查询,下面制定了几种适应方式,例如第一个表示屏幕宽度在320px-360px之间的,html字体大小适配为13.65pxmedia only screen and (max-width: 360px) and (min-width:…

C/C++ 中判断某一文件或目录是否存在

方法一&#xff1a;C中比较简单的一种办法&#xff08;使用文件流打开文件&#xff09; 1 #include <iostream>2 #include <fstream>3 4 using namespace std;5 6 #define FILENAME "*.dat" // 指定文件名7 8 int main( void )9 { 10 fstream _fi…