笔者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. 微信小程序获取腾讯经纬度,得到具体地址

    getCityNameOFLocation: function() { var that = this; wx.getLocation({ type: 'wgs84', // 默认为 wgs84 返回 ...

  2. CentOS7 安装PHP7的redis扩展:

      phpredis-4.2.0.tar.gz:下载:wget https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz   $ tar -z ...

  3. A strange lift HDU - 1548

    There is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 ...

  4. 导出csv文件数字会自动变科学计数法的解决方法

    其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0.解决 ...

  5. vue 关于npm run build 的小问题

    vue项目使用npm run build命令进行打包操作,打包之后试运行报错,报错为: 且命令行警告信息为: 解决办法: 找到项目目录下的config文件夹里的index.js文件,将build对象下 ...

  6. jquery解决file上传图片+图片预览

    js解决file上传图片+图片预览 demo案例中代码为js原生控制,可以根据项目的需求修改为jquery操作 <!DOCTYPE html><html lang="en& ...

  7. [转]2017年最具价值的十大开源项目!GitHub 年度报告~

    <GitHub 2017 年度报告>GitHub 每年都会在年度盛会中推出数据报告,其中列出了一些年度的数据,包括其网站中最受欢迎的编程语言.开源项目等.那么今年哪些开源项目最具价值呢?我 ...

  8. git 恢复误删的分支

    在使用git的过程中,因为人为因素造成分支(commit)被删除,可以使用以下步骤进行恢复. 首先用以下步骤创建一个新分支,修改一些文件后删除,以便进行恢复. 1.创建分支 abc git branc ...

  9. Oracle表空间状态

    1.表空间只读 查看当前表空间状态 SYS@userdata>column file_name format a60 SYS@userdata>column tablespace_name ...

  10. SourceInsight 4重启之后文件变只读无法编辑

    SourceInsight4.0在导入代码后,用起来没问题,第二天,再开启sourceInsight,结果所有文件变成只读了,不能编辑,标签前面也有了叹号. 百度一下,有人说是版本控制的问题,但是sv ...