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 相关文章推荐
Python3 模块、包调用&路径详解
Oct 25 Python
解决python使用open打开文件中文乱码的问题
Dec 29 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
python实现图像识别功能
Jan 29 Python
Python批量发送post请求的实现代码
May 05 Python
python Django中models进行模糊查询的示例
Jul 18 Python
对django中foreignkey的简单使用详解
Jul 28 Python
Pytorch环境搭建与基本语法
Jun 03 Python
keras.layer.input()用法说明
Jun 16 Python
python2和python3哪个使用率高
Jun 23 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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多维数组遍历方法(2种实现方法)
2015/12/10 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
JS 类型转换常见方法小结
2010/05/31 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
使用js画图之饼图
2015/01/12 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
详解Python发送邮件实例
2016/01/10 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
如何完美的建立一个python项目
2020/10/09 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
帕克纽约:PARKER NY
2018/12/09 全球购物
联谊会主持词
2014/03/26 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
Python爬取某拍短视频
2021/06/11 Python
使用Ajax实现进度条的绘制
2022/04/07 Javascript
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers