跳板机 OR 堡垒机大致用途
跳板机就是一台服务器,客户在需要访问过程中,首先要统一登录到这台服务器上,然后从这台服务器在登录到目标设备上为访问集群限定一个入口,方便权限控制以及监控;
堡垒机是通过切断终端对计算机网络和服务器资源的直接访问,采用协议代理的方式接管终端计算机对网络和服务器的访问。
生成环境使用前提:
- 业务服务器不允许直接连接,必须通过跳板机连接
- 业务服务器不允许root用户直接登录
例子1(使用密码连接):定义脚本 通过堡垒机 连接后端主机
==注意:==脚本需要写在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
执行结果:
例子2(使用key密钥认证)
- 使用堡垒机的alice用户生成密钥
[alice@jumpserver ~]$ ssh-keygen - 将公钥拷贝到后端主机
[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
执行结果:
禁止脚本被强制退出
添加:trap “” HUP INT OUIT TSTP
trap 捕捉进程信号
- HUP: 挂起
- INT: 中断,按下Ctrl+C 触发
- QUIT: 退出,因某些严重的执行错误而引发
- TSTP: 停止进程的运行,但该信号可以被处理和忽略,用户健入SUSP字符时(通常是Ctrl-Z)发出这个信号
执行结果:一直按Ctrl+C 没反应,,退不出
美化shell回显,添加颜色
echo -en "\e[1;32m输入要连接的虚拟机: \e[0m "
echo -e:添加颜色
echo -n:echo默认会加换行符,-n 取消此换行符
\e[1;32m 绿色
\e[0;m 恢复到白色