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 登录网站详解及实例
Apr 11 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
python中的json总结
Oct 11 Python
pandas通过loc生成新的列方法
Nov 28 Python
python plotly绘制直方图实例详解
Jul 22 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
Python requests模块session代码实例
Apr 14 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
python实现双链表
May 25 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中的Cannot modify header information 问题
2013/08/12 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
js tab效果的实现代码
2009/12/26 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
对javascript继承的理解
2016/10/11 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现处理管道的方法
2015/06/04 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
python下载微信公众号相关文章
2019/02/26 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
Pandas的Apply函数具体使用
2020/07/21 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
国贸专业个人求职信范文
2014/01/08 职场文书
开办大学饮食联盟创业计划书
2014/01/29 职场文书
婚礼主持词
2014/03/13 职场文书
企业安全生产责任书
2014/04/14 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
Go语言编译原理之源码调试
2022/08/05 Golang