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使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
Python读取txt某几列绘图的方法
Oct 14 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
Python二维码生成识别实例详解
Jul 16 Python
python 利用已有Ner模型进行数据清洗合并代码
Dec 24 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 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导入模块文件分享
2015/03/17 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
PHP中Array相关函数简介
2016/07/03 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php 浮点数比较方法详解
2017/05/05 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python 接口返回的json字符串实例
2018/03/27 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
四年级数学教学反思
2014/02/02 职场文书
小小的船教学反思
2014/02/21 职场文书
抽奖活动主持词
2014/03/31 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
2015年母亲节寄语
2015/03/23 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
SQL Server表分区删除详情
2021/10/16 SQL Server
Python中三种花式打印的示例详解
2022/03/19 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle