跳板机需求:

要求用户登陆到跳板机后,只能执行管理员给定的选项动作,不允许以任何形式中断脚本而到跳板机服务器上
执行任何系统命令。

需求分析:

(1)跳板机服务器需要和其余服务器做好ssh秘钥认证

(2)实现传统的远程连接菜单的脚本

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

(4)用户登录跳板机后即刻调用脚本,并且只能安装管理员的要求选择

[root@lb01 ~]# useradd jump
[root@lb01 ~]# echo "123456"|passwd --stdin jump
更改用户 jump 的密码 。
passwd:所有的身份验证令牌已经成功更新。


[root@web01 ~]# useradd jump
[root@web01 ~]# echo "123456"|passwd --stdin jump
更改用户 jump 的密码 。
passwd:所有的身份验证令牌已经成功更新。

[root@web02 ~]# useradd jump
[root@web02 ~]# echo "123456"|passwd --stdin jump
更改用户 jump 的密码 。
passwd:所有的身份验证令牌已经成功更新。

[root@lb01 ~]# su - jump
[jump@lb01 ~]$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa > /dev/null 2>&1
[jump@lb01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.56.110
[jump@lb01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.56.120
[root@lb01 ~]# vim /etc/profile.d jump.sh
#!/bin/bash
[ $UID -ne 0 ] && . /server/scripts/jump.sh
[root@lb01 ~]# mkdir /server/scripts/ -p
[root@lb01 ~]# vim /server/scripts/jump.sh
#!/bin/bash
trapper() {
	trap ':' INT EXIT TSTP TERM HUP
}

main() {
	while :
	do
		trapper
		clear
		cat <<menu
1)Web01:192.168.56.110
2)Web02:192.168.56.120
#If you want quit the server,please input the Q|q for quit.
menu
		read -p "Please input the server what you want to login.:" num
		case $num in 
		  1)
			echo "login the 192.168.56.110"
			ssh 192.168.56.110
			;;
		  2)
			echo "login the 192.168.56.120"
			ssh 192.168.56.120
			;;
		  Q|q)
			echo "Quit ............"
			exit 0
			;;
		  *)
			echo "Your input is error."
			sleep 2
			;;
		esac
	done
}
main