shell脚本制作堡垒机实战

跳板机 OR 堡垒机大致用途

跳板机就是一台服务器,客户在需要访问过程中,首先要统一登录到这台服务器上,然后从这台服务器在登录到目标设备上为访问集群限定一个入口,方便权限控制以及监控;

堡垒机是通过切断终端对计算机网络和服务器资源的直接访问,采用协议代理的方式接管终端计算机对网络和服务器的访问。

生成环境使用前提:

  1. 业务服务器不允许直接连接,必须通过跳板机连接
  2. 业务服务器不允许root用户直接登录

例子1(使用密码连接):定义脚本 通过堡垒机 连接后端主机

shell脚本制作堡垒机实战
==注意:==脚本需要写在alice用户,客户一登录堡垒机就是alice用户,不给root账号。

#!/bin/bash
#----------------------
#jump-server line Rear system(Linux)
#v1.0 by zjz 2019-10-29
#----------------------
#后端主机定义
yumAnsible=192.168.0.111
kali=192.168.0.107

while :   #写一个死循环,退出后只能再选,不用重新启动sh运行
do
cat <<-EOF  #打印一个菜单供客户选择
1.yum
2.kali
EOF        

  read -p "输入要连接的虚拟机: " num  

  case "$num" in         #通过read,读取到的数值,传给case
  1)
    ssh alice@$yumAnsible   
    ;;
  2)
    ssh alice@$kali
    ;;        
  "")                #此行表示,什么都没输入就 退出
    ;;
   *)                #输入的不是1 or 2 ,就回显Input error
    echo "Input error"
  esac
done

执行结果:
shell脚本制作堡垒机实战

例子2(使用key密钥认证)

  1. 使用堡垒机的alice用户生成密钥
    [alice@jumpserver ~]$ ssh-keygen
  2. 将公钥拷贝到后端主机
    [alice@jumpserver ~]$ ssh-copy-id 192.168.0.111
    [alice@jumpserver ~]$ ssh-copy-id 192.168.0.107

配置客户登录到堡垒机就立即执行jump-server.sh脚本
要注意alice对jump-server.sh有没执行权限
-rwxr-xr-x. 1 alice alice 399 Oct 24 08:05 jump-server.sh
shell脚本制作堡垒机实战
执行结果:
shell脚本制作堡垒机实战

禁止脚本被强制退出

添加:trap “” HUP INT OUIT TSTP
trap 捕捉进程信号

  • HUP: 挂起
  • INT: 中断,按下Ctrl+C 触发
  • QUIT: 退出,因某些严重的执行错误而引发
  • TSTP: 停止进程的运行,但该信号可以被处理和忽略,用户健入SUSP字符时(通常是Ctrl-Z)发出这个信号
    shell脚本制作堡垒机实战
    执行结果:一直按Ctrl+C 没反应,,退不出
    shell脚本制作堡垒机实战

美化shell回显,添加颜色

echo -en "\e[1;32m输入要连接的虚拟机: \e[0m "
echo -e:添加颜色
echo -n:echo默认会加换行符,-n 取消此换行符
\e[1;32m 绿色
\e[0;m   恢复到白色

shell脚本制作堡垒机实战

上一篇:tp5—Traits引入


下一篇:【CF346E】Doodle Jump