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


Posted in Python onFebruary 05, 2015

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

测试代码:

#!/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模块教程

目前主要用于批量执行多个服务器的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()
Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
浅谈python之新式类
Aug 12 Python
python将txt文件读入为np.array的方法
Oct 30 Python
python3 爬取图片的实例代码
Nov 06 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python基于mysql实现学生管理系统
Feb 21 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
python标识符命名规范原理解析
Jan 10 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
python基于socket函数实现端口扫描
May 28 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 Python
Python 冒泡,选择,插入排序使用实例
Feb 05 #Python
Python中使用Flask、MongoDB搭建简易图片服务器
Feb 04 #Python
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 #Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 #Python
Python、Javascript中的闭包比较
Feb 04 #Python
线程和进程的区别及Python代码实例
Feb 04 #Python
Python中使用PIPE操作Linux管道
Feb 04 #Python
You might like
一个程序下载的管理程序(二)
2006/10/09 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
摘自启点的main.js
2008/04/20 Javascript
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
Vuex简单入门
2017/04/19 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
python文件写入write()的操作
2019/05/14 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
Python的collections模块真的很好用
2021/03/01 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
财务部经理岗位职责
2014/02/03 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
党员干部学习心得体会
2016/01/23 职场文书
入党申请书怎么写?
2019/06/11 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers