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 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
举例详解Python中循环语句的嵌套使用
May 14 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
让代码变得更易维护的7个Python库
Oct 09 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
python进程和线程用法知识点总结
May 28 Python
Python发展史及网络爬虫
Jun 19 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
解决Python安装cryptography报错问题
Sep 03 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
Python中tkinter的用户登录管理的实现
Apr 22 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 文件上传全攻略
2010/04/28 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
JavaScript DOM 添加事件
2009/02/14 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
Python yield使用方法示例
2013/12/04 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
python设计模式大全
2016/06/27 Python
Python对List中的元素排序的方法
2018/04/01 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
汽车装潢店创业计划书范文
2014/02/05 职场文书
工程项目建议书范文
2014/03/12 职场文书
村长贪污检举信
2014/04/04 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
如何写好竞聘报告
2019/04/03 职场文书