Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 使用Python的Paramiko模块登陆SSH

paramiko是用Python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
python的paramiko模块可以方便的实现ssh登录,并执行命令。pycrypto 与 paramiko下载到Linux公社资源站下载:------------------------------------------分割线------------------------------------------免费下载地址在 http://linux.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载目录在 /2017年资料/1月/26日/使用Python的Paramiko模块登陆SSH/下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm------------------------------------------分割线------------------------------------------

1. paramiko模块安装

1.1安装pycrypto库

pycrypto库的主页在这里:https://www.dlitz.net/software/pycrypto/pycrypto库安装方法python setup.py build && python setup.py install

1.2安装paramiko

paramiko库的主页在这里:https://pypi.python.org/pypi/paramiko
paramiko库的安装方法超级简单。python setup.py build && python setup.py install

2.简单使用

2.1 执行远程命令

#!/usr/bin/pythonimport paramikossh = 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()

2.2 上传文件到远程

#!/usr/bin/pythonimport paramikot = paramiko.Transport(("某IP地址",22))t.connect(username = "用户名", password = "口令")sftp = paramiko.SFTPClient.from_transport(t)remotepath="/tmp/test.txt"localpath="/tmp/test.txt"sftp.put(localpath,remotepath)t.close()

2.3 上传文件到远程

#!/usr/bin/pythonimport paramikot = paramiko.Transport(("某IP地址",22))t.connect(username = "用户名", password = "口令")sftp = paramiko.SFTPClient.from_transport(t)remotepath="/tmp/test.txt"localpath="/tmp/test.txt"sftp.get(remotepath, localpath)t.close()

3.高级用法

通常需要对多个服务器或者虚拟机进行管理,可以采用批量的方式进行。#-*- coding: utf-8 -*-#!/usr/bin/python import paramikoimport threadingdef ssh2(ip,username,passwd,cmd):try:ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(ip,22,username,passwd,timeout=5)for m in cmd:stdin, stdout, stderr = ssh.exec_command(m)out = stdout.readlines()for o in out:print o,#屏幕输出print "%s OK "%(ip)ssh.close()except :print "%s Error "%(ip)if __name__=="__main__":cmd = ["echo hello!"]#需要执行的命令列表username = "root"#用户名passwd = "root"#密码threads = [] #多线程print "Begin excute......" for i in range(1,254):ip = "192.168.1."+str(i)a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd)) a.start() 零基础如何入门Python http://www.linuxidc.com/Linux/2016-10/136485.htmUbuntu 14.04安装Python 3.3.5  http://www.linuxidc.com/Linux/2014-05/101481.htmCentOS上源码安装Python3.4  http://www.linuxidc.com/Linux/2015-01/111870.htmUbuntu 14.04下Python数据处理环境搭建  http://www.linuxidc.com/Linux/2017-01/139568.htm《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htm在CentOS 6.5上安装Python2.7  http://www.linuxidc.com/Linux/2016-10/136206.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htm 本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139977.htm