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安装paramikoparamiko库的主页在这里: https://pypi.python.org/pypi/paramiko
paramiko库的安装方法超级简单。
python setup.py build && python setup.py install 2.简单使用 2.1 执行远程命令 #!/usr/bin/pythonimport 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() 2.2 上传文件到远程 #!/usr/bin/python
import paramiko
t = 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/python
import paramiko
t = 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 paramiko
import threading
def 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\tOK\n'%(ip)
ssh.close()
except :
print '%s\tError\n'%(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.htm
Ubuntu 14.04安装Python 3.3.5 http://www.linuxidc.com/Linux/2014-05/101481.htm
CentOS上源码安装Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm
Ubuntu 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