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实现多线程HTTP下载器示例
Feb 11 Python
Python中property属性实例解析
Feb 10 Python
python实现简单遗传算法
Mar 19 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
python实时检测键盘输入函数的示例
Jul 17 Python
pytorch 输出中间层特征的实例
Aug 17 Python
Python读取csv文件实例解析
Dec 30 Python
Python任务调度模块APScheduler使用
Apr 15 Python
python中setuptools的作用是什么
Jun 19 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 select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
详解php中的implements 使用
2017/06/13 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
javascript操作cookie
2017/01/17 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
护士个人年终总结
2015/02/13 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书