跳板机需求:
要求用户登陆到跳板机后,只能执行管理员给定的选项动作,不允许以任何形式中断脚本而到跳板机服务器上
执行任何系统命令。
需求分析:
(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
原文地址:http://blog.51cto.com/jinlong/2083827