paramiko 遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,可以实现远程文件的上传,下载或通过ssh远程执行命令。

一、安装

root@ubuntu:~/paramiko#pip install paramiko

测试是否安装成功

>>> importparamiko>>>

二、上传文件到远程服务器

原理:通过SFTPClient类根据SSH传输协议的sftp会话,实现远程文件上传、下载等操作。实现远程文件上传、下载。

任务:10. 1.101.187向10.1.101.186发送文件。

10.1.101.187 目录/root/paramiko  有三个文件 paramikosend.py  test  test.tar

10.1.101.186 目录/root/paramiko   开始为空文件夹

执行python paramikosend.py,代码如下

root@ubuntu:~/paramiko#cat paramikosend.py

importparamiko,datetime,os

hostname= '10.1.101.186'username= 'root'password= '123456'port= 22local_dir= '/root/paramiko'remote_dir= '/root/paramiko'

try:

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

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

sftp=paramiko.SFTPClient.from_transport(t)

files=os.listdir(local_dir)for f infiles:

sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))

t.close()exceptException:print "connect error!"

结果:

三、从远程服务器下载文件

原理:通过SFTPClient类根据SSH传输协议的sftp会话,实现远程文件上传、下载等操作。实现远程文件上传、下载。

任务:现在10.1.101.186的/root/paramiko/temp186目录有两个文件,将其下载到10.1.101.187的/root/paramiko/temp187目录。

执行 python paramikoget.py ,代码如下

root@ubuntu:~/paramiko#cat paramikoget.py

importparamiko,datetime,os

hostname= '10.1.101.186'username= 'root'password= '123456'port= 22local_dir= '/root/paramiko/temp187'remote_dir= '/root/paramiko/temp186'

try:

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

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

sftp=paramiko.SFTPClient.from_transport(t)

files=sftp.listdir(remote_dir) #这里需要注意,列出远程文件必须使用sftp,而不能用osfor f infiles:

sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))

t.close()exceptException:print "connect error!"

结果:

四、执行命令测试

原理:通过SSHClient类执行命令。SSHClient类是SSH服务会话的高级表示,封装了传输、通道以及SFTPClient的校验、建立方法,通常用于执行命令。

任务:通过10.1.101.187连接到10.1.101.186,然后进入目录/root/paramiko,创建一个目录lxy。

执行python paramikocommand.py,代码如下:

root@ubuntu:~/paramiko#cat paramikocommand.py#!/usr/bin/python

importparamiko

hostname= '10.1.101.186'username= 'root'password= '123456'port= 22ssh=paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

stdin, stdout, stderr= ssh.exec_command("cd /root/paramiko;mkdir lxy")printstdout.readlines()

ssh.close()

结果:

命令中也可以带参数:

root@ubuntu:~/paramiko#cat paramikocommand.py#!/usr/bin/python

importparamiko

hostname= '10.1.101.186'username= 'root'password= '123456'port= 22name='testcmd'ssh=paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

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

stdin, stdout, stderr= ssh.exec_command("cd /root/paramiko;mkdir %s" %name)printstdout.readlines()

ssh.close()

Note:exec_command为单个会话,执行完成之后会回到登录时的缺省目录。

比如执行下面两句。

stdin, stdout, stderr = ssh.exec_command("cd /root/paramiko;mkdir %s" %name)

stdin,stdout,stderr= ssh.exec_command('mkdir haha')

haha目录最终是在缺省的/root目录下新建的,而不是/root/paramiko目录。

五、python远程执行操作的其他开源模块

fabric:fabric是封装了paramiko模块来实现ssh来传输文件的。

pexpect:也可以实现ssh 登录到某个用户指定的主机上,运行某个用户指定的命令

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4670433.html有问题欢迎与我讨论,共同进步。

python paramiko_python paramiko相关推荐

  1. python paramiko_Python Paramiko基本使用

    一.Paramiko简介 首先来看谁创造了paramiko,是一个名叫Jeff Forcier创建了paramiko项目.项目主页:http://www.paramiko.org,可以去看上面有很多相 ...

  2. python paramiko_Python Paramiko模块的使用实际案例

    本文研究的主要是Python Paramiko模块的使用的实例,具体如下. Windows下有很多非常好的SSH客户端,比如Putty.在python的世界里,你可以使用原始套接字和一些加密函数创建自 ...

  3. python paramiko_python paramiko的使用介绍

    一: 使用paramiko #设置ssh连接的远程主机地址和端口 t=paramiko.Transport((ip,port)) #设置登录名和密码 t.connect(username=userna ...

  4. 利用python模块paramiko在CentOS 6.3 64上搭建SFTP环境

    用python实现远程登陆主机执行命令或通过sftp上传下载文件,有个很好的模块paramiko模块来演示这些功能,使用起来很方便 CentOS 6.x上的python版本默认是2.6的,为了平台兼容 ...

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

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

  6. python ssh登陆模块_使用python的Paramiko模块登陆SSH

    paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. python的paramiko模块可以方便的实现ssh登录,并执行命令. 1. pa ...

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

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

  8. python 多线程 paramiko实现批量命令输入输出

    远程批量执行命令 实现多线程执行 速度快 实现多并发登录 #-*- coding: utf-8 -*- #!/usr/bin/python import paramiko import threadi ...

  9. 【python】-- paramiko、跳板机(堡垒机)

    paramiko Python的paramiko模块,该模块用于连接远程服务器并执行相关命令,常用于作批量管理使用 一.下载: pip3 install paramiko 源码:查看 二.parami ...

最新文章

  1. 【HDOJ】1058 Humble Numbers
  2. Rails Migration Data Model栏位修改及数据类型介绍
  3. 计算机不能显示可移动磁盘咋办,U盘插上电脑不显示“可移动磁盘”该怎么办...
  4. 2017年度计算机科学各领域热点词汇
  5. apache+php
  6. 基于墨刀实现的原型系统:多啦阅读
  7. dps软件计算机64位的安装,DPS数据处理系统
  8. linux gpio管脚功能配置API
  9. 常见的计算机查询语言,利用SQL语句查询SCCM常用报表
  10. 网页打开慢升级服务器宽带,网速快打开网页慢怎么办_网络测速很快但是上网很慢如何解决-win7之家...
  11. 亚马逊云AWS MQTTS 证书使用说明
  12. win10安装Offic2016以后,Word文件、Excel文件、PPT文件图标显示不正常解决方法
  13. Gstore官网学习一:知识图谱与gStore介绍
  14. php 按汉字拼音排序,php 数组按中文拼音排序
  15. 怎样让您的电脑待机耗电等于零?
  16. 工作Delay,应该吸取什么教训?(一)
  17. AI开发过程中常用开发命令及软件安装
  18. 2B青年答疑:什么是2B青年?如何脱离2B青年行列?
  19. JSOI2019招待
  20. 小型趋势指标、中型趋势指标和主要趋势指标

热门文章

  1. npoi ppt html,NPOI(示例代码)
  2. html阴影效果骰子,王权骰铸第一季摩点更新易村点,没关注的小伙伴可以自己看一下...
  3. 基于JAVA河池市旅游信息系统计算机毕业设计源码+数据库+lw文档+系统+部署
  4. 油烟净化器能不能过环保,该怎么做?
  5. 中国手机发展史:从1G通讯技术到华为5G时代
  6. php网站屏蔽指定IP
  7. python实验三:P2P网络带宽数据主表Training_Master、用户信息更新表Training_Userupdate和登录信息表Training_LogInfo
  8. java-php-python-ssm流浪动物救助网站设计与实现计算机毕业设计
  9. 【okhttp与Gson】
  10. 《盗墓笔记》新浪页游助手辅助同期上线