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. 〖Android〗把CM(Android)源代码导入eclipse的正确方法(2013-7-3)

    1. 首先应当使CM代码成功编译过一次: cd /path/to/cm . build/envsetup lunch full-eng mka 2. 配置eclipse开发的基本环境 cd /path ...

  2. 机器学习数学基础- gradient descent算法(上)

    为什么要了解点数学基础 学习大数据分布式计算时多少会涉及到机器学习的算法,所以理解一些机器学习基础,有助于理解大数据分布式计算系统(比如spark)的设计.机器学习中一个常见的就是gradient d ...

  3. Linux 网桥配置命令:brctl

    Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个brid ...

  4. Appium完整安装教程

    Appium安装教程 发布时间: 2014-12-11 10:34    作者: 柒月    来源: 51Testing软件测试网采编 字体:  小  中  大  | 上一篇 下一篇 | 打印  | ...

  5. linux动态链接库导出函数控制

    windows 环境的vc的话,可以方便的指定__declspec(dllexport) 关键字来控制是否把dll中的函数导出.我也来测试一下linux下面是如何做的:先看gcc 和ld的相关选项 = ...

  6. 新浪微博XSS攻击事件

    http://blog.csdn.net/terryzero/article/details/6575078 6月28日20时14分左右开始,新浪微博出现了一次比较大的XSS攻击事件.大量用户自动发送 ...

  7. iOS官方文档阅读 基本格式指北

    一些关键词作用 NS_AVAILABLE 表示可用 如 NS_AVAILABLE(NA, 6_0);例如上面这句就是表示 该方法在6.0系统后可用 如果在6.0以下的系统用不了的 或者直接崩溃. NS ...

  8. Spring Cloud(五):熔断监控Hystrix Dashboard和Turbine

    Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数 ...

  9. Java类载入器(一)——类载入器层次与模型

    类载入器   虚拟机设计团队把类载入阶段中的"通过一个类的全限定名来获取描写叙述此类的二进制字节流"这个动作放到Java虚拟机外部去实现.以便让应用程序自己决定怎样去获取所须要的类 ...

  10. tcpdump常用参数说明

    (一).学习tcpdump的5个参数 初次使用tcpdump时,使用tcpdump -h命令可以看到它有数十个参数. 根据我们在运维工作中的经验,掌握tcpdump以下5个参数即可满足大部分的工作需要 ...