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 03 Python
python删除列表中重复记录的方法
Apr 28 Python
Python去除字符串两端空格的方法
May 21 Python
Django的URLconf中使用缺省视图参数的方法
Jul 18 Python
python实现图片文件批量重命名
Mar 23 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
5道关于python基础 while循环练习题
Nov 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
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
python基础教程之缩进介绍
2014/08/29 Python
python 读入多行数据的实例
2018/04/19 Python
python实战教程之自动扫雷
2018/07/13 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
心得体会开头
2014/01/01 职场文书
酒鬼酒广告词
2014/03/21 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
片区教研活动总结
2014/07/02 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
培训简讯范文
2015/07/20 职场文书
判断Python中的Nonetype类型
2021/05/25 Python