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 相关文章推荐
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
python机器人行走步数问题的解决
Jan 29 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
python 同时运行多个程序的实例
Jan 07 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
python中pivot()函数基础知识点
Jan 03 Python
python自然语言处理之字典树知识总结
Apr 25 Python
python脚本框架webpy的url映射详解
Nov 20 Python
分享3个非常实用的 Python 模块
Mar 03 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中的错误处理、异常处理机制分析
2012/05/07 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
jQuery中find()方法用法实例
2015/01/07 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
Angular4开发解决跨域问题详解
2017/08/28 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Django实现随机图形验证码的示例
2020/10/15 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
2014新年寄语
2014/01/20 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
公司承诺书怎么写
2014/05/24 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
工作失误检讨书
2015/01/26 职场文书
离婚协议书范文
2015/01/26 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
python实现简易自习室座位预约系统
2021/06/30 Python
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript