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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
Python的设计模式编程入门指南
Apr 02 Python
简单解决Python文件中文编码问题
Nov 22 Python
Python实现的矩阵类实例
Aug 22 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
python跨文件使用全局变量的实现
Nov 17 Python
python 判断字符串当中是否包含字符(str.contain)
Jun 01 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 cookies中删除的一般赋值方法
2011/05/07 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
三种php连接access数据库方法
2013/11/11 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
python3中类的继承以及self和super的区别详解
2019/06/26 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python数据预处理方式 :数据降维
2020/02/24 Python
python中如何使用虚拟环境
2020/10/14 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
办公室内勤工作职责
2013/12/11 职场文书
对公司合理化的建议书
2014/03/12 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
话题作文之诚信
2019/11/28 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL