Python Paramiko模块的安装与使用详解


Posted in Python onNovember 18, 2016

一、前言

常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了。而使用paramiko可以很好的解决以上问题,比起前面的方法,它仅需要在本地上安装相应的软件(python以及PyCrypto),对远程服务器没有配置要求,对于连接多台服务器,进行复杂的连接操作特别有帮助。下面本文就来详细的介绍Python Paramiko模块的安装与使用,一起学习学习吧。、

二、安装

安装paramiko有两个先决条件,python和另外一个名为PyCrypto的模块。

通常安装标准的python模块,只需要在模块的根目录下运行:

python setup.py build
python setup.py install

备注:安装前先检查是否安装gcc(yum -y install gcc)

2.1 PyCrypto安装

wget http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz
tar -zxvf pycrypto-2.6.tar.gz
cd pycrypto-2.6/
python setup.py build && python setup.py install

测试:

python>> import Crypto

(编译时报错:error: command 'gcc' failed with exit status 1;这是因为缺少python-dev的软件包,所yum -y install python-devel)

2.2 paramiko安装

wget http://www.lag.net/paramiko/download/paramiko-1.7.7.1.tar.gz
tar xvzf paramiko-1.7.7.1.tar.gz
cd paramiko-1.7.7.1/
python setup.py build && python setup.py install
Crypto error: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'

测试:

python>> import paramiko
(Crypto error: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'

找到 /usr/lib/python2.7/site-packages/Crypto/Util/number.py

if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:

注释了

#if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:

三、使用

3.1 执行远程命令

#!/usr/bin/python
import paramiko
 
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("某IP地址",22,"用户名", "口令")
stdin, stdout, stderr = ssh.exec_command("你的命令")
print stdout.readlines()
ssh.close()

3.2 上传文件到远程

#!/usr/bin/python
import paramiko
 
t = paramiko.Transport(("某IP地址",22))
t.connect(username = "用户名", password = "口令")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/tmp/test.txt'
localpath='/tmp/test.txt'
sftp.put(localpath,remotepath)
t.close()

3.3 从远程下载文件

#!/usr/bin/python
import paramiko
 
t = paramiko.Transport(("某IP地址",22))
t.connect(username = "用户名", password = "口令")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/tmp/test.txt'
localpath='/tmp/test.txt'
sftp.get(remotepath, localpath)
t.close()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
python实现电子词典
Apr 23 Python
Python切片用法实例教程
Sep 08 Python
Python内存管理方式和垃圾回收算法解析
Nov 11 Python
Python带动态参数功能的sqlite工具类
May 26 Python
详解python之协程gevent模块
Jun 14 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
Python制作exe文件简单流程
Jan 24 Python
pyqt5实现登录界面的模板
May 30 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
Pygame Event事件模块的详细示例
Nov 17 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 #Python
Python切换pip安装源的方法详解
Nov 18 #Python
Python max内置函数详细介绍
Nov 17 #Python
Python中的日期时间处理详解
Nov 17 #Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 #Python
Python进阶篇之字典操作总结
Nov 16 #Python
Python极简代码实现杨辉三角示例代码
Nov 15 #Python
You might like
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
php 中的closure用法详解
2017/06/12 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
JavaScript的parseInt 进制问题
2009/05/07 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Python之pymysql的使用小结
2019/07/01 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
EJB发布WEB服务一般步骤
2012/10/31 面试题
小学生读书感言
2014/02/12 职场文书
读书活动总结
2014/04/28 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
入党积极分子个人总结
2015/03/02 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS