windows下安装并使用Python的SSH模块(paramiko+pycrypto+ecdsa)

2014-01-20 14:59 2223人阅读 评论(0) 收藏 举报
Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是:pycrypto -> ecdsa -> paramiko

1、安装pyCrypto
安装这个比较麻烦,需要本地编译,要装vs或gcc还有一堆配置,还不一定能编译成功。(网上能搜到安装步骤)
建议直接下载已编译版: http://www.voidspace.org.uk/python/modules.shtml#pycrypto
直接下载并安装既可。
(注:crypto有java和C++版)

2、安装ecdsa
看很多博客没有提到这个库,但我执行paramiko时,提示找不到ecdsa模块。
下载:https://pypi.python.org/pypi/ecdsa/0.9 ,解压到一个目录,目录中有一个setup.py。
安装比较简单,windows下直接在刚才解压后的目录执行:python setup.py install

3.安装paramiko

与安装ecdsa类型,只是打开下载页面很慢。。。

下载: https://github.com/paramiko/paramiko#,

安装步骤同ecdsa

注:1、所有另外安装的第三方库,如果不特指定安装后库目录的话,将默认保存到 %PYTHON_HOME%\Lib\site-packages下。

2、python大小写敏感,对模块名也是。

3、Crypto可以提供常见的加解密算法,如:RSA、RC4、DSA、DES

测试例子:

  1. # _*_ coding:UTF-8 _*_
  2. def t5():
  3. '''''Crypto MD5'''
  4. from Crypto.Hash import MD5
  5. h = MD5.new()
  6. h.update(b'Hello')
  7. print h.hexdigest()
  8. def t6():
  9. import paramiko
  10. hostname = '192.168.9.57'
  11. port = 22
  12. user = 'root'
  13. passwd = '123456'
  14. paramiko.util.log_to_file('paramiko.log')
  15. s = paramiko.SSHClient()
  16. s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  17. s.connect(hostname=hostname,port=port,username=user, password=passwd)
  18. #stdin,stdout,stderr=s.exec_command('pwd')
  19. stdin,stdout,stderr=s.exec_command('cat /etc/passwd | grep root:x:0:0:root', timeout=5)
  20. #print stdout.read()
  21. lines = stdout.readlines()
  22. for i in lines:
  23. print splitline(i)
  24. #print i,
  25. s.close()
  26. def splitline(line='', ch=':'):
  27. tmp = line[0:len(line)-1]
  28. ss = tmp.split(ch)
  29. ret = ''
  30. for i in ss:
  31. ret += i
  32. ret += ' '
  33. #print i + '===',
  34. return ret
  35. if __name__ == "__main__":
  36. #t7()
  37. t6()
  38. #t5()
# _*_ coding:UTF-8 _*_

def t5():
'''Crypto MD5'''
from Crypto.Hash import MD5
h = MD5.new()
h.update(b'Hello')
print h.hexdigest() def t6():
import paramiko hostname = '192.168.9.57'
port = 22
user = 'root'
passwd = '123456' paramiko.util.log_to_file('paramiko.log')
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname=hostname,port=port,username=user, password=passwd)
#stdin,stdout,stderr=s.exec_command('pwd')
stdin,stdout,stderr=s.exec_command('cat /etc/passwd | grep root:x:0:0:root', timeout=5)
#print stdout.read()
lines = stdout.readlines()
for i in lines:
print splitline(i)
#print i,
s.close() def splitline(line='', ch=':'):
tmp = line[0:len(line)-1]
ss = tmp.split(ch)
ret = ''
for i in ss:
ret += i
ret += ' '
#print i + '===',
return ret if __name__ == "__main__":
#t7()
t6()
#t5()

参考文章:

http://blog.chinaunix.net/uid-24917554-id-3476396.html

http://lili-xiang.iteye.com/blog/1796640

api:

https://www.dlitz.net/software/pycrypto/api/current/     https://www.dlitz.net/software/pycrypto/doc/

http://docs.paramiko.org/

python中paramiko的安装的更多相关文章

  1. python中paramiko模块的使用

    paramiko是python一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.可以远程操作服务器文件 例如: df:查看磁盘使用情况 mkdir:创建目录 mv/cp/mk ...

  2. 关于python中PIL的安装

    python 的PIL安装是一件很蛋痛的事, 如果你要在python 中使用图型程序那怕只是将个图片从二进制流中存盘(例如使用Scrapy 爬网存图),那么都会使用到 PIL 这库,而这个库是出名的难 ...

  3. python中pip的安装

    1.下载路径如下 https://pypi.python.org/simple/ 在其中查找到pip的安装包:然后找到路径 https://pypi.python.org/simple/pip/ 2. ...

  4. python中requests已安装却仍报No module named requests错的原因

    调用pip list可见已经成功安装了: requests 但是在运行时仍报错: userdeMacBook-Pro:xiaohui user$ python test_web.py Tracebac ...

  5. python中使用pip安装报错:Fatal error in launcher... 解决方法

    python安装了2和3版本在 cmd 中用pip报的错误为:Fatal error in launcher:Unable to create process using 这是因为你安装了python ...

  6. 关于python中第三方库安装方法和问题解决

    一.安装方法 方法一: 1.管理员身份启动命令行(运行--->cmd) 2.pip install 库的绝对路径和库的详细名称 :或者运用cd命令跳转到下载好的库所在的位置然后pip insta ...

  7. Python中的pip安装与使用

    配置python的环境变量 我们在我的电脑右击->属性->高级系统设置看到环境变量 然后我们点击环境变量,找到系统变量中的Path变量然后双击他新建一项,值为我们安装的python的pyt ...

  8. Python中Paramiko协程方式详解

    什么是协程 协程我们可以看做是一种用户空间的线程. 操作系统对齐存在一无所知,需要用户自己去调度. 比如说进程,线程操作系统都是知道它们存在的.协程的话是用户空间的线程,操作系统是不知道的. 为什么要 ...

  9. python中的pip安装

    windows下安装PIP 当前环境(windows 7,python安装路径为c:\Python) 1.首先到官网下载(https://pypi.python.org/pypi/setuptools ...

随机推荐

  1. 让zend studio 支持 redis函数自动提示

    phpredis作者https://github.com/nicolasff/phpredis 写了文档https://github.com/ukko/phpredis-phpdoc上面提到了如何让e ...

  2. Javascript遍历页面控件

    function validate(){ //var Elements = document.all;  var Elements = document.getElementsByTagName(&q ...

  3. android 实现全屏代码

    设置全屏包括两个部分: 窗口全屏和Activity全屏. 窗口全屏 是指隐藏系统顶部用来显示时间.电量.信号等信息的标题栏 . Activity全屏 是指隐藏程序的标题栏.我们可以通过修改Androi ...

  4. EF性能

    批量操作时,加上这句:Context.Configuration.AutoDetectChangesEnabled = false; 主要是取消跟踪,缩短对象添加到上下文的时间(非执行SQL的时间)

  5. DataGridView 的单元格的边框、 网格线样式的设定

    1) DataGridView 的边框线样式的设定DataGridView 的边框线的样式是通过 DataGridView.BorderStyle 属性来设定的. BorderStyle 属性设定值是 ...

  6. Hive 中的变量

    Hive的变量前面有一个命名空间,包括三个hiveconf,system,env,还有一个hivevar hiveconf的命名空间指的是hive-site.xml下面的配置变量值. system的命 ...

  7. c语言中函数参数入栈的顺序是什么?为什么

    看到面试题C语言中函数参数的入栈顺序如何? 自己不知道,边上网找资料.下面是详细解释 #include <stdio.h> void foo(int x, int y, int z){   ...

  8. C++代码优化方法总结

    C++代码优化方法总结 优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力.我只是想把一些可以简单的应用到你的C++代码中 的优化技术总结在这里,这样,当你遇到 ...

  9. Redis(八):spring data redis 理解

    前言 Spring Data Redis project,应用了Spring概念来开发使用键值形式的数据存储的解决方案.我们(官方)提供了一个 "template" ,这是一个高级 ...

  10. Cadence技巧01:利用Excel速新建原理图元件库

    Cadence技巧01:利用Excel速新建原理图元件库 听语音 | 浏览:1698 | 更新:2015-07-02 09:41 | 标签:excel 1 2 3 4 5 6 7 分步阅读 一键约师傅 ...