Shell 开发跳板机功能脚本

本文介绍如何利用Shell脚本开发企业级跳板机功能,通过SSH密钥验证确保安全登录,并通过菜单选择限制用户操作,同时利用Linux信号防止用户中断,确保跳板机的安全性和可控性。

利用Shell开发跳板机功能脚本案例

开发企业级Shell跳板机案例。要求用户登录到跳板机仅能执行管理员给定的选项动作,不允许以任何形式中断脚本到跳板机服务器上执行任何系统命令。

1)   首先做好 SSH 密钥验证(跳板机地址:192.168.1.5)

下面的命令在所有的机器上操作:

[root@jump ~]# useradd zhouhao
[root@jump ~]# echo 123456 | passwd --stdin zhouhao

[root@test ~]# useradd zhouhao
[root@test ~]# echo 123456 | passwd --stdin zhouhao

以下操作命令仅在跳板机上操作:

[root@jump ~]# su - zhouhao
[root@jump ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1  #<==生成密钥对
[root@jump ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub#<==将公钥分发到其他服务器。

#如果ssh端口 不是22 ,可以使用 -p参数 如下:
[root@jump ~]# ssh-copy-id  -i ~/.ssh/id_dsa.pub "-p 5180 服务器IP"

2) 实现传统的远程;连接菜单选择脚本。

菜单脚本如下:

cat <<menu
           1)LB01-192.168.1.3
              2)exit
menu

3) 利用 linux 信号防止用户中断信号在跳板机上操作.

functiontrapper () {
        trap ':' INT  EXIT TSTP TERM HUP  #<==屏蔽这些信号。< code="">
}

4) 用户登录跳板机后即调用脚本(不能命令行管理跳板机),并只能按照管理员的要求选单。

以下为实战内容:

脚本放在跳板机上:

4.1 将pofifle.d目录下创建,登录用户就自动执行的jump.sh 脚本

[root@jump ~]# echo '[ $UID -ne 0 ] && . /server/scripts/jump.sh'>/etc/profile.d/jump.sh  
[root@jump ~]# cat /etc/profile.d/jump.sh 
#!/bin/sh
[ $UID -ne 0 ] && . /server/scripts/jump.sh
#判断如果不是root用户,就执行jump.sh,然后调用/server/scripts/jump.sh脚本
[root@jump ~]# mkdir -p /server/scripts/
[root@jump ~]# cd /server/scripts/

4.2 编写跳板机主脚本

[root@jump scripts]# cat jump.sh 
#!/bin/bash 
trapper(){
	trap ':' INT EXIT TSTP TERM HUP  #定义需要屏蔽的信号,冒号表示啥也不做
}
main(){
while :
do
	trapper
	clear
	cat<<menu
	 1)LB01-192.168.1.3
menu
read -p "Pls input a num.:" num
case "$num" in
	1)
	  echo 'login in LB01.'
	  ssh 192.168.1.3
	  ;;
   	110)
	  read -p "your birthday:" char
	  if [ "$char" = "0306" ];then
		exit
		sleep 3
	fi
	;;
	*)
	echo "select error"
	esac
done
}
main

执行效果如下:

[root@jump ~]# su - zhouhao
 1)LB01-192.168.1.3
Pls input a num.:1    #<==选1进入LB01 服务器。
login in LB01.
Last login: Mon Oct 14 14:02:25 2019 from 192.168.1.5
[zhouhao@h1 ~]$   #<==按ctrl+d退出到跳板机服务器再次弹出菜单。
1)LB01-192.168.1.3  
Pls input a num.:110  #<==选110进入跳板机命令提示符。
your birthday:0306    #<==需要输入特别码才能进入的,这里管理员通道,密码要保密呦。
[root@jump ~]#  #<==跳板机管理命令行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值