Python堡垒机

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # import paramiko
 4 # msg = """
 5 #              \(≧▽≦)/欢迎来到地表最强跳板机\(≧▽≦)/
 6 # """
 7 # print(msg)
 8 # # 建立一个sshclient对象
 9 # ssh = paramiko.SSHClient()
10 # # 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
11 # ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
12 # # 调用connect方法连接服务器
13 # ssh.connect(hostname=‘192.168.92.172‘,port=22,username=‘yinqiuliang‘,password=‘123.com‘)
14 # # 执行命令
15 #
16 # while True:
17 #     input_chose = input("请输入对服务器的操作命令:")
18 #     stdin, stdout, stderr = ssh.exec_command(input_chose)
19 # # 结果放到stdout中,如果有错误将放到stderr中
20 #     print(stdout.read().decode())
21 #
22 # ssh.close()
23 import paramiko
24 msg = """
25              \(≧▽≦)/欢迎来到地表最强跳板机\(≧▽≦)/
26 """
27 print(msg)
28 # t = paramiko.Transport(("192.168.92.172","22"))
29 # t.connect(username="yinqiuliang",password="123.com")
30 #ssh = paramiko.SSHClient()
31 # ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
32 # ssh.connect("192.168.92.172",22,"yinqiuliang", "123.com")
33 # stdin, stdout, stderr = ssh.exec_command("df -h")
34 # print(stdout.read().decode())
35 # ssh.close()
36 # class server(host):
37 #     def __delattr__(self, host,user,pwd):
38 #         self.host = host
39 #         self.user = user
40 #         self.pwd =  pwd
41
42 def server(host,Port,user,pwd):
43     ssh = paramiko.SSHClient()
44     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
45     ssh.connect(host, Port, user, pwd,timeout=30)
46     while True:
47         res_choise = input("请输入对服务器的操作命令:")
48         #print(res)
49         if res_choise == ‘exit‘:
50             exit()
51         elif len(res_choise) == 0:
52             continue
53
54         #stdin, stdout, stderr = ssh.exec_command(res_choise)
55         stdin, stdout, stderr = ssh.exec_command(res_choise)
56         res, err = stdout.read(),stderr.read()
57         resuilt = res if res else err
58         print("[%s]".center(50,"-") %host)
59         print(resuilt.decode())
60         #print(stdout.read().decode())
61         # print(stdin.read().decode())
62         # print(stderr.read().decode())
63         ssh.close()
64 # def command():
65 #     res = input("请输入对服务器的操作命令:")
66 #     #print(res)
67 #     return res
68
69 if __name__ == ‘__main__‘:
70     #command(‘df -h‘)
71     server("192.168.92.172",22,"yinqiuliang","123.com")
时间: 2024-10-08 09:46:51

Python堡垒机的相关文章

python 堡垒机续-----终端方式

第一步:环境准备 堡垒机服务器:192.168.1.1 后端服务器1:192.168.1.2 后端服务器2:192.168.1.3 堡垒机安装paramiko 版本:paramiko-1.16.0 堡垒机python版本:Python 2.7.7   第二步:编写menu.py文件,实现类似菜单功能 #!/usr/bin/env python # encoding: utf-8 # @author: eddy # @contact: [email protected] # @site: http

Python之路【第八篇】:堡垒机实例以及数据库操作

Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: + import paramiko transport = paramiko.Transport(('hostname', 22)) transport.connect(username='wupeiqi', password='123') ssh

Python之路第一课Day9--随堂笔记之一(堡垒机实例以及数据库操作)未完待续....

一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.c

Python之路【第九篇】堡垒机基础&数据库操作

复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:utf-8 -*- __author__ = 'luo_t' import paramiko ''' 第一种方法 ''' ssh = paramiko.SSHClient() #创建SSH对象 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy

python之实现批量远程执行命令(堡垒机)

python远程批量执行 我并不是一个专业的开发,我一直在学习linux运维,对于python也是接触不久,所以代码写的并不是很规范简洁. 前段时间一个同学找我一起做一个自动化运维平台,我对python的django还没有了解,并且对于HTML和JS这类开发学习还没有涉及,所以我说我做些后台的实现,前端就交给我的同学做.不扯淡了,下面说下我做批量执行的思路. 用到的模块:paramiko 功能:很简单就是批量执行命令,类似于ansible,本来想用Fabric,但是想一想还是用paramiko,

python之实现基于paramiko和mysql数据库的堡垒机

一.堡垒机结构 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表 用户选择服务器,并自动登陆 执行操作并同时将用户操作记录 注:配置.brashrc实现ssh登陆后自动执行脚本,如:/usr/bin/python /home/wupeiqi/menu.py 二.实现过程 步骤一,实现用户登陆 import getpass user = raw_input('username:') pwd

Python之路:堡垒机实例以及数据库操作

Python之路:堡垒机实例以及数据库操作 一.堡垒机前戏 开发堡垒机之前,先学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: #!/usr/bin/env  python# --*--coding:utf-8 --*--import paramiko #创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.se

python实现一个堡垒机!!!

项目背景: 有些时候,我们不想用户直接连接我们的服务器,所以我们会在中间设置一个堡垒!!!这也是堡垒机最本质的用途!,今天,我们自己写一个,用python! 实验环境: vmware workstation 11 服务器A:ip:192.168.0.19   关闭iptables  setenforce0 服务器B:ip:192.168.0.25   关闭iptables  setenforce0 服务器C:ip:192.168.0.13    关闭 iptables  setenforce0

python 学习第十一课 上下文管理 paramiko 堡垒机 mysql操作

Rlock 与 Lock 这两种琐的主要区别是:RLock允许在同一线程中被多次acquire.而Lock却不允许这种情况.注意:如果使用RLock,那么acquire和release必须成对出现,即调用了n次acquire,必须调用n次的release才能真正释放所占用的琐 >>> help(threading.RLock) RLock(*args, **kwargs) Factory function that returns a new reentrant lock. A reen