window平台上基于python搭建一个堡垒级系统
2017-12-20 22:30
627 查看
#coding=utf-8 import getpass,select,socket,sys import paramiko,logging logging.basicConfig(level=logging.DEBUG, filename='bastion.log', format='%(asctime)s - %(levelname)s: %(message)s') # 定义一个Handler打印INFO及以上级别的日志到sys.stderr console = logging.StreamHandler() console.setLevel(logging.DEBUG) # 设置日志打印格式 formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') console.setFormatter(formatter) # 将定义好的console日志handler添加到root logger logging.getLogger('').addHandler(console) user =raw_input('username:') pwd =getpass.getpass('password') dic ={'pi': ['192.168.1.105','c10.puppet.com','c11.puppet.com',],'eric': ['c100.puppet.com',]} if user =='pi'and pwd =='123': logging.info('登陆成功') if dic.get(user,''): print(dic.get(user,'')) NO=raw_input('选择ip对应NO:') else: print('你还没有访问资源,联系管理员添加') sys.exit() else: logging.info('登陆失败') sys.exit() #主机ip 端口 hostname ='192.168.1.105' port =22 tran =paramiko.Transport((hostname, port,)) tran.start_client() #windows上的私钥 default_path='C:\Users\zhouzw\Downloads\id_rsa' key =paramiko.RSAKey.from_private_key_file(default_path) tran.auth_publickey('pi', key) # 打开一个通道 chan =tran.open_session() # 获取一个终端 chan.get_pty() # 激活器 chan.invoke_shell() ########## def windows_shell(chan): import threading sys.stdout.write("Line-buffered terminal emulation. Press F6 or ^Z to send EOF.\r\n\r\n") def writeall(sock): while True: data = sock.recv(256) if not data: logging.info(data) sys.stdout.write('\r\n*** EOF ***\r\n\r\n') sys.stdout.flush() break sys.stdout.write(data) sys.stdout.flush() writer = threading.Thread(target=writeall, args=(chan,)) writer.start() try: while True: d = sys.stdin.read(1) if not d: break print d logging.info(d) chan.send(d) except EOFError: # user hit ^Z or F6 pass windows_shell(chan) ######### chan.close() tran.close()
相关文章推荐
- 从零开始学Python(九):搭建一个基于SMTP的简单邮件预警系统
- Python 学习之中的一个:在Mac OS X下基于Sublime Text搭建开发平台包括numpy,scipy
- OpenRisc-8-基于or1200最小sopc系统搭建(二)--QuartuII工程及DE2平台下载
- 基于RHEL5.9系统搭建LAMP平台
- window 平台搭建简单的直播点播系统
- 设计思路.Thinking.基于Python构建一个可扩展的运维自动化平台?
- 基于Dubbo的分布式系统架构(二):搭建一个简单的分布式架构
- 在Windows上基于VS2013搭建IT++库通信系统仿真平台(it++ 4.3.1&&vs2013)
- 深入浅出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境
- 发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)
- Python入门-环境搭建详解(Window平台)
- 搭建Python3+PyQt5+eric6平台开发基于Python平台的GUI
- 搭建一个简单的基于web的网络流量监控可视化系统
- Windows平台搭建基于PyQt5.8.2开发Python GUI程序的环境(含打包过程)
- iMatrix平台的权限管理系统是一个基于角色的访问控制系统
- 搭建一个开发Predix软件的Ubuntu 系统(2)配置使用Predix工业云平台的基础环境
- 请问Python适合用来开发一个基于B/S的信息管理系统吗?
- 搭建基于Windows 7 的Beagleboard开发平台: 编写一个可在Beagleboard上运行的Hello World
- 基于开源的joomla建站系统搭建一个免费的企业网站
- 搭建一个开发Predix软件的Windows系统(2)配置使用Predix工业云平台的基础环境