使用python的Paramiko模块登陆SSH
2015-06-21 10:35
453 查看
paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
python的paramiko模块可以方便的实现ssh登录,并执行命令。
pycrypto库的主页在这里:https://www.dlitz.net/software/pycrypto/
pycrypto库安装方法
paramiko库的主页在这里:https://pypi.python.org/pypi/paramiko
paramiko库的安装方法超级简单。
参考
/article/4874050.html
http://www.oschina.net/p/paramiko
http://developer.51cto.com/art/201206/340118.htm
python的paramiko模块可以方便的实现ssh登录,并执行命令。
1. paramiko模块安装
1.1安装pycrypto库
下载地址请戳这里:http://download.csdn.net/detail/oatnehc/8825715;pycrypto库的主页在这里:https://www.dlitz.net/software/pycrypto/
pycrypto库安装方法
python setup.py build && python setup.py install
1.2安装paramiko
paramiko下载地址:http://download.csdn.net/detail/oatnehc/8825743paramiko库的主页在这里:https://pypi.python.org/pypi/paramiko
paramiko库的安装方法超级简单。
python setup.py build && python setup.py install
2.简单使用
2.1 执行远程命令
#!/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()
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()
参考
/article/4874050.html
http://www.oschina.net/p/paramiko
http://developer.51cto.com/art/201206/340118.htm
相关文章推荐
- python函数
- Python(2)(基本输入输出语句)
- Python_09-面向对象编程
- Python base64编码解码实例
- Python中type的构造函数参数含义说明
- Python多线程和队列操作实例
- Python文件读取的3种方法及路径转义
- 让Python代码更快运行的5种方法
- Python ValueError: invalid literal for int() with base 10 实用解决方法
- Python实现删除文件但保留指定文件
- Python os模块学习笔记
- Python实现线程池代码分享
- Python安装第三方库的3种方法
- Python的装饰器模式与面向切面编程详解
- Python中有趣在__call__函数
- Python中实现三目运算的方法
- Python Property属性的2种用法
- python3.3:文本文件读取、处理及保存。小练习
- numpy安装问题
- python编程中的闭包函数