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列表append和+的区别浅析
Feb 02 Python
python获得一个月有多少天的方法
Jun 04 Python
python 基础教程之Map使用方法
Jan 17 Python
Python通过future处理并发问题
Oct 17 Python
python对于requests的封装方法详解
Jan 03 Python
Python中super函数用法实例分析
Mar 18 Python
python设置环境变量的原因和方法
Jun 24 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python numpy存取文件的方式
Apr 01 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
详解Python遍历列表时删除元素的正确做法
Jan 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来检测proxy
2006/10/09 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
php随机抽奖实例分析
2015/03/04 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python通过select实现异步IO的方法
2015/06/04 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python中反射和描述器总结
2018/09/23 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
python 爬取小说并下载的示例
2020/12/07 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
创业计划书的写作技巧及要点
2014/01/31 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
中学生学习保证书
2015/02/26 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
Python实战之实现简易的学生选课系统
2021/05/25 Python
MySQL之select、distinct、limit的使用
2021/11/11 MySQL