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的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python中的id()函数指的什么
Oct 17 Python
python生成二维码的实例详解
Oct 29 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
python 协程 gevent原理与用法分析
Nov 22 Python
浅析Django中关于session的使用
Dec 30 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 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
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
json跟xml的对比分析
2008/06/10 Javascript
Javascript中Eval函数的使用
2010/03/23 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
webpack入门必知必会
2017/01/16 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python实现的Excel文件读写类
2015/07/30 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
基于python操作ES实例详解
2019/11/16 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
python安装后的目录在哪里
2020/06/21 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
销售提升方案
2014/06/07 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
店铺转让协议书
2014/12/02 职场文书
离职感谢信
2015/01/21 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
活动经费申请报告
2015/05/15 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
golang 比较浮点数的大小方式
2021/05/02 Golang
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android