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实现读取字符串按列分配后按行输出示例
Apr 17 Python
python pandas库的安装和创建
Jan 10 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
Python玩转加密的技巧【推荐】
May 13 Python
Python Subprocess模块原理及实例
Aug 26 Python
python 创建一维的0向量实例
Dec 02 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
python实现代码审查自动回复消息
Feb 01 Python
python中%格式表达式实例用法
Jun 18 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 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
linux下 C语言对 php 扩展
2008/12/14 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript之锁定表格栏位
2007/06/29 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
python添加菜单图文讲解
2019/06/04 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
.net面试题
2015/12/22 面试题
电子商务专业学生的学习自我评价
2013/10/27 职场文书
大家访活动实施方案
2014/03/10 职场文书
二年级评语大全
2014/04/23 职场文书
兴趣小组活动总结
2014/05/05 职场文书
小学节能减排倡议书
2014/05/15 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
普宁寺导游词
2015/02/04 职场文书