python安装paramiko模块

一、简介

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。

二:安装

安装paramiko有两个先决条件,python和另外一个名为PyCrypto的模块。

通常安装标准的python模块,只需要在模块的根目录下运行:

python setup.py build

python setup.py install

以上两条命令即可,paramiko和PyCrypto也不例外,唯一麻烦的就是安装PyCrypto时,需要GCC库编译,如果没有GCC库会报错,会导致PyCrypto以及paramiko无法安装。

以下以32 位的windows XP为例,说明paramiko的安装过程

 

1:安装python,2.2以上版本都可以,我使用的是2.5,安装过程略,并假设安装目录是c:\python。

 

2:判断本地是否安装了GCC,并在PATH变量可以找到,如果没有,可使用windows 版的GCC,即MinGW,下载地址:http://sourceforge.net/projects/mingw/,然后运行下载后的exe文件进行网络安装,假设目录为C:\mingw,在PATH中加入 C:\mingw\bin,并在c:\python\lib\distutils下新建一个名称是distutils.cfg的文件,填入:

[build] 
compiler=mingw32

 

3:下载PyCrypto ,地址是

https://www.dlitz.net/software/pycrypto/

安装PyCrypto:

  • 解压缩
  • 在dos下进入解压缩的目录,运行
C:\python\python.exe setup.py build

C:\python\python.exe setup.py install

 

  • 安装测试

  运行python.exe,在提示符下输入:

Import  Crypto

  如果没有出现错误提示,说明Crypto安装成功

easy_install fabric
安装到pycrypto 出现 Unable to find vcvarsall.bat 的错误
google 之,安装MinGW,
在python的Lib\distutils目录下,找到distutils.cfg文件(如果没有,就创建一个)。加上下面内容:
[build] 
compiler=mingw32
然后到pycrypto目录下执行 python setup.py build --compiler=mingw32
我的没有,创建了一个。但是又发现出现RuntimeError: chmod error,可能是win下面没有这个命令吧,
google搜了下,原来要装msys,然后重新安装MinGW,选上msys,再次执行python setup.py build --compiler=mingw32,
又出现cc1.exe: 错误:unrecognized command line option ‘-mno-cygwin’,看意思,应该是gcc 不识别-mno-cygbin的命令,
google搜了下,意思差不多,然后找到Lib\distutils\cygwinccompiler,然后把里面的-mno-cygbin全部删除。
再次执行python setup.py build --compiler=mingw32,终于通过了。
最后再执行easy_install fabric,顺利安装。

 

4:下载paramiko,地址是http://www.lag.net/paramiko/

  • 解压缩
  • 在dos下进 入解压缩的目录,运行
C:\python\python.exe setup.py build

C:\python\python.exe setup.py install
  • 测试paramiko

  运行python.exe,在提示符下输入:

Import  paramiko

  如果没有出现错误提示,说明paramiko安装成功

 

三: 使用paramiko

 

如果大家感觉安装paramiko还是略有麻烦的话,当使用到paramiko提供的方便时便会觉得这是十分值得的。

下面是两种使用paramiko连接到linux服务器的代码

方式一:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("某IP地址",22,"用户名", "口令")

上面的第二行代码的作用是允许连接不在know_hosts文件中的主机。

 

posted @ 2016-10-19 17:27  jetlin  阅读(1882)  评论(0编辑  收藏  举报