手机
当前位置:查字典教程网 >脚本专栏 >python >Windows系统下安装Python的SSH模块教程
Windows系统下安装Python的SSH模块教程
摘要:Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模...

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%Libsite-packages下。

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

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

测试代码:

复制代码 代码如下:

#!/usr/bin/python

# -*- coding:utf-8 -*-

# cp@chenpeng.info

import paramiko

def MAIN():

host = “10.1.1.1″

port = 22

user = “root”

pswd = “111222333″

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(host, port, user, pswd)

stdin, stdout, stderr = ssh.exec_command(‘ifconfig')

print stdout.read()

ssh.close()

#

if __name__=='__main__':

try:

MAIN()

except Exception,e:

print e

输出如下:

Windows系统下安装Python的SSH模块教程1

目前主要用于批量执行多个服务器的ssh命令,批量维护比较方便。

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

方式一:

复制代码 代码如下:

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect("某IP地址",22,"用户名", "口令")

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

方式二:

复制代码 代码如下:

t = paramiko.Transport(("主机","端口"))

t.connect(username = "用户名", password = "口令")

如果连接远程主机需要提供密钥,上面第二行代码可改成:

复制代码 代码如下:

t.connect(username = "用户名", password = "口令", hostkey="密钥")

例子:

复制代码 代码如下:

#!/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()

下载linux服务器上的文件

复制代码 代码如下:

#!/usr/bin/python

import paramiko

t = paramiko.Transport(("主机","端口"))

t.connect(username = "用户名", password = "口令")

sftp = paramiko.SFTPClient.from_transport(t)

remotepath='/var/log/system.log'

localpath='/tmp/system.log'

sftp.get(remotepath, localpath)

t.close()

上传文件到linux服务器

复制代码 代码如下:

#!/usr/bin/python

import paramiko

t = paramiko.Transport(("主机","端口"))

t.connect(username = "用户名", password = "口令")

sftp = paramiko.SFTPClient.from_transport(t)

remotepath='/var/log/system.log'

localpath='/tmp/system.log'

sftp.put(localpath,remotepath)

t.close()

【Windows系统下安装Python的SSH模块教程】相关文章:

windows下安装python paramiko模块的代码

netbeans7安装python插件的方法图解

Python中apply函数的用法实例教程

python encode和decode的妙用

python基础教程之udp端口扫描

python 多进程通信模块的简单实现

Python时区设置方法与pytz查询时区教程

Python的内存泄漏及gc模块的使用分析

linux环境下安装pyramid和新建项目的步骤

windows下wxPython开发环境安装与配置方法

精品推荐
分类导航