笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

源码地址: https://github.com/sshstack/sshstack

为什么要写shell跳板机?

跳板机的作用目前主要为解决公司开发人员查看日志的需求。而商业跳板机动辄几十万不是我等屌丝公司能消受得起的,开源的跳板机也有几款,如jumpserver,GateOne,麒麟堡垒机等。

但这些真的是拿来就能用的吗?

根据生产实践,这些跳板机存在查看日志卡死、web界面无响应、报错提示不直观等问题,对于中小公司来说体型过大,安装卸载都是大工程(简直不能忍了)。

二次开发可能是个较好的选择,但不是每个运维都会python,而且对于100台以下规模服务器来说,价值也不大。

所以shell跳板机就有了,它非常轻量级,无需数据库,基于ssh协议和linux基本命令,运行流畅,使用简单。对运维来说具有亲和力,易于个性化修改和定制,有了它可轻松管理100台左右的服务器。实在是运维同学居家旅行必备良药啊!

有哪些功能?

  • 1.一键登陆(已实现)
  • 2.用户管理(完善中)
  • 3.主机授权(完善中)
  • 4.批量授权(实现中)
  • 5.资产管理(实现中)
  • 6.日志审计(规划中)
  • 7.用户查询(规划中)

如何使用?

一、先决条件

  • 管理机对所有被管理机做ssh密钥认证
  • 管理机安装ansible
  • 适用系统为CentOS 7
  • 所有主机在hosts文件做主机名与IP地址解析

二、目录说明

[root@oldboy sshstack]# tree
.
├── bin # 可执行文件
│   ├── deluser.sh # 删除用户脚本
│   ├── localadd.sh # 注册用户脚本
│   ├── remoteadd.sh # 给用户授权主机脚本
│   └── sshstack.sh # 用户登陆后执行的shell
├── conf # 配置文件
│   ├── hosts # 配置已有的资产
│   └── sshstack.conf # 配置文件
├── data # 创建用户信息与主机授权信息存放目录
│   └── oldboy.info
├── func # 函数库
│   └── funcs
└── README.md 4 directories, 9 files

三、最佳实践

1.安装

拉取代码到任意目录即完成安装,需要注意目录权限为755,以下存放在/opt目录下

cd /opt
git clone https://github.com/sshstack/sshstack.git

2.添加资产

将被管理主机填入/opt/sshstack/conf/hosts即可,这里我们有三台oldboy的主机。

[root@oldboy conf]# cat /opt/sshstack/conf/hosts
[IP地址] [主机名] [备注]
10.0.0.21 oldboy-web01 老男孩教育官网接口
10.0.0.22 oldboy-web02 老男孩教育官网h5页面
10.0.0.23 oldboy-web03 老男孩教育官网后台

3.创建本地用户oldboy

执行脚本,输入oldboy

[root@oldboy sshstack]# /opt/sshstack/bin/localadd.sh
输入用户> oldboy
INFO: 创建用户
SUCCESS.
INFO: 生成随机密码
SUCCESS.
INFO: 写入文件/opt/sshstack/data/oldboy.info

用户创建好后,用户信息保存在/opt/sshstack/data/wanggang.info文件

4.授权主机

这里将授权oldboy用户可以登陆oldboy-web01、oldboy-web02、oldboy-web03这三台主机

[root@oldboy sshstack]# /opt/sshstack/bin/remoteadd.sh
输入用户> oldboy
授权主机> 10.0.0.21
INFO: 生成本地密钥
SUCCESS.
INFO: 创建远端用户
SUCCESS.
INFO: 发送公钥到远程主机
SUCCESS.
INFO: 修改权限
SUCCESS.
[root@oldboy sshstack]# /opt/sshstack/bin/remoteadd.sh
输入用户> oldboy
授权主机> 10.0.0.22
INFO: 生成本地密钥
SUCCESS.
INFO: 创建远端用户
SUCCESS.
INFO: 发送公钥到远程主机
SUCCESS.
INFO: 修改权限
SUCCESS.
[root@oldboy sshstack]# /opt/sshstack/bin/remoteadd.sh
输入用户> oldboy
授权主机> 10.0.0.23
INFO: 生成本地密钥
SUCCESS.
INFO: 创建远端用户
SUCCESS.
INFO: 发送公钥到远程主机
SUCCESS.
INFO: 修改权限
SUCCESS.

授权主机后,信息同样保存在/opt/sshstack/data/oldboy.info文件

5.查看用户信息

刚创建的用户信息保存在data目录下

[root@oldboy data]# cat /opt/sshstack/data/oldboy.info
2018-02-02:14:46:24 用户名 oldboy 密码 2fe579e7
10.0.0.21 oldboy-web01 老男孩教育官网接口
10.0.0.22 oldboy-web02 老男孩教育官网h5页面
10.0.0.23 oldboy-web03 老男孩教育官网后台

6.用户登陆

因为oldboy用户在oldboy主机上已经创建,我们只需要在自已电脑执行ssh命令即可连接,我这里以mac为例:

Mac:~ chentiangang$ ssh -p25535 oldboy@oldboy
oldboy@oldboy's password:
Last failed login: Fri Feb 2 10:28:44 CST 2018 from 106.37.109.202 on ssh:notty
There were 2 failed login attempts since the last successful login. Welcome to Alibaba Cloud Elastic Compute Service !
主机列表:
[IP地址] [主机名] [备注]
10.0.0.21 oldboy-web01 老男孩教育官网接口
10.0.0.22 oldboy-web02 老男孩教育官网h5页面
10.0.0.23 oldboy-web03 老男孩教育官网后台 改密:password
退出:exit
清屏:clear
提示:输入主机名或IP地址连接
oldboy 选择主机 >

用户登陆后即要看到已授权的主机,可以通过输入password修改密码,输入主机名或IP地址即可登陆到对应的授权主机。

shell开源跳板机sshstack的更多相关文章

  1. 搭建开源跳板机——jumpserver

    搭建开源跳板机mobaxterm 官方文档:https://jumpserver.readthedocs.io/zh/master/ $ yum update -y # 防火墙 与 selinux 设 ...

  2. CentOS7 开源跳板机(堡垒机) Jumpserver

    开源跳板机(堡垒机)Jumpserver 环境 CentOS 7   x64       关闭 selinux  firewalld jumpserver: 172.24.0.14 testserve ...

  3. Shell跳板机sshstack

    笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 源码地址: https://github.com/sshstack/sshstack 为什么要写shell跳板机? ...

  4. Shell实现跳板机,为什么用跳板机

    整理自:http://blog.chinaunix.net/uid-22101889-id-3167454.html 注意:请谨慎使用,到现在为止,使用了,我还没找到改回去的方法. 1.     问题 ...

  5. 项目(五)jumpserver企业开源跳板机搭建

    跳板机是什么?跳板机是运维堡垒主机的另个称呼.作为技术或者运维人员应该不会陌生.企业为了服务器的安全,通常所有的ssh连接都是通过跳板机来完成,以便于对ssh连接进行验证和管理. 接下来,我来讲述一下 ...

  6. 开源跳板机(堡垒机)系统 Jumpserver安装教程(带图文)

    环境 系统: CentOS 7 IP: 192.168.244.144 关闭 selinux 和防火墙 # CentOS 7 $ setenforce 0 # 可以设置配置文件永久关闭 $ syste ...

  7. 最新开源跳板机(堡垒机)系统 Jumpserver介绍

    Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统. Jumpserver 使用 Python / Django 进行开发,遵 ...

  8. Docker 搭建开源跳板机_jumpserver (运维开源堡垒机_jumpserver) Centos_7.0

    最近看到一个开源项目(jumpserver)  很不错  还是用Docker  部署得 ... 抽了点时间拿来学习一下  部署    分析   简单使用一下  ....好了先搭起来 准备 工作:    ...

  9. jumpserver(0.3.2版本)开源跳板机系统部署

    1. 介绍 JumpServer亮点: 集成Ansible,批量执行命令: 支持WebTerminal wiki地址:https://github.com/jumpserver/jumpserver/ ...

随机推荐

  1. Dedecmsv5.7整合ueditor 图片上传添加水印

    最近的项目是做dedecmsv5.7的二次开发,被要求上传的图片要加水印,百度ueditor编辑器不支持自动加水印,所以,找了很多资料整合记录一下,具体效果图 这里不仔细写dedecmsv5.7 整合 ...

  2. 03 爬虫之selenium模块

    selenium模块 1.概念,了解selenium 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. seleniu ...

  3. Codeforces 1151F Sonya and Informatics (概率dp)

    大意: 给定01序列, 求随机交换k次后, 序列升序的概率. 假设一共$tot$个$0$, 设交换$i$次后前$tot$个数中有$j$个$0$的方案数为$dp[i][j]$, 答案即为$\frac{d ...

  4. phpmyadmin getshell

    执行SQL语句:SET GLOBAL general_log = ON

  5. Vue keep-alive总结

    <keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM. <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是 ...

  6. 五、Oracle的常识点

    1.Oracle中使用rownum来进行分页,这个是效率最好的分页方法 select * from ( ) 2.Oracle的索引使用 创建索引: create index index_name on ...

  7. Oracle11g版本中未归档隐藏参数

    In this post, I will give a list of all undocumented parameters in Oracle 11g. Here is a query to se ...

  8. Oracle RAC管理及维护命令详解

    Oracle Clusterware的命令集可以分为以下4种: 节点层:osnodes 网络层:oifcfg 集群层:crsctl, ocrcheck,ocrdump,ocrconfig 应用层:sr ...

  9. linux下详解shell中>/dev/null 2>&1

    前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...

  10. AdaBoost, LogitBoost and GradientBoosting

    前向分步算法与加法模型(forward stagewise algorithm and additive model) (1) AdaBoost:前向分步算法中损失函数取指数损失函数 (2) Logi ...