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处理json数据中的中文
Mar 06 Python
python学习之编写查询ip程序
Feb 27 Python
详解python中executemany和序列的使用方法
Aug 12 Python
Python中捕获键盘的方式详解
Mar 28 Python
python代码编写计算器小程序
Mar 30 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
python des,aes,rsa加解密的实现
Jan 16 Python
Python移位密码、仿射变换解密实例代码
Jun 27 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
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
php事务处理实例详解
2014/07/11 PHP
php两种无限分类方法实例
2015/04/21 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
python标准算法实现数组全排列的方法
2015/03/17 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
Python内建模块struct实例详解
2018/02/02 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
django基于restframework的CBV封装详解
2019/08/08 Python
python实现复制大量文件功能
2019/08/31 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
师德个人剖析材料
2014/02/02 职场文书
高中军训感想800字
2014/02/23 职场文书
说明书范文
2014/05/07 职场文书
干部鉴定材料
2014/05/18 职场文书
2015元旦标语横幅
2014/12/09 职场文书
小学生暑假安全公约
2015/07/14 职场文书
敬老院活动感想
2015/08/07 职场文书