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获取外网ip地址的方法总结
Jul 02 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
python连接mysql实例分享
Oct 09 Python
python3.x上post发送json数据
Mar 04 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
Python考拉兹猜想输出序列代码实践
Jul 05 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
PyTorch的torch.cat用法
Jun 28 Python
Python Pandas解析读写 CSV 文件
Apr 11 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
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
Python标准异常和异常处理详解
2015/02/02 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
Python基础知识点 初识Python.md
2019/05/14 Python
Python实现FM算法解析
2019/06/18 Python
python 实现list或string按指定分段
2019/12/25 Python
python实现低通滤波器代码
2020/02/26 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
婚前协议书范本
2014/04/15 职场文书
爱与责任演讲稿
2014/05/20 职场文书
媒体宣传策划方案
2014/05/25 职场文书
学术诚信承诺书
2014/05/26 职场文书
绿色出行口号
2014/06/18 职场文书
建筑工地宣传标语
2014/06/18 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
python中取整数的几种方法
2021/11/07 Python
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript