转载地址:http://oldboy.blog.51cto.com/2561410/1915017
1)首先做好SSH密钥验证(跳板机地址192.168.33.128)
1
2
3
4
|
[root@oldboy~]
# useradd jump #<==要在所有机器上操作。
[root@oldboy~]
# echo 123456|passwd --stdin jump #<==要在所有机器上操作。
Changingpassword
for
user jump.
passwd
:all authentication tokens updated successfully.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root@oldboy~]
# su - jump
[jump@oldboy~]$
ssh
-keygen -t dsa -P
''
-f ~/.
ssh
/id_dsa
>
/dev/null
2>&1
#<==生成密钥对。
[jump@oldboy~]$
ssh
-copy-
id
-i ~/.
ssh
/id_dsa
.pub 192.168.33.130
#<==将公钥分发到其他服务器。
Theauthenticity of host
'192.168.33.130 (192.168.33.130)'
can't be established.
RSA keyfingerprint is fd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.
Are yousure you want to
continue
connecting (
yes
/no
)?
yes
Warning:Permanently added
'192.168.33.130'
(RSA) to the list of known hosts.
jump@192.168.33.130'spassword:
Now trylogging into the machine, with
"ssh '192.168.33.130'"
, and check
in
:
.
ssh
/authorized_keys
to makesure we haven
't added extra keys that you weren'
t expecting.
[jump@oldboy~]$
ssh
-copy-
id
-i ~/.
ssh
/id_dsa
.pub 192.168.33.129
#<==将公钥分发到其他服务器。
Theauthenticity of host
'192.168.33.129 (192.168.33.129)'
can't be established.
RSA keyfingerprint is fd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.
Are yousure you want to
continue
connecting (
yes
/no
)?
yes
Warning:Permanently added
'192.168.33.129'
(RSA) to the list of known hosts.
jump@192.168.33.129'spassword:
Now trylogging into the machine, with
"ssh '192.168.33.129'"
, and check
in
:
.
ssh
/authorized_keys
to makesure we haven
't added extra keys that you weren'
t expecting.
|
菜单脚本如下:
1
2
3
4
5
|
cat
<<menu
1)oldboy-192.168.33.129
2)oldgirl-192.168.33.130
3)
exit
menu
|
3)利用linux信号防止用户中断信号在跳板机上操作。
1
2
3
|
functiontrapper () {
trap
':'
INT EXIT TSTP TERM HUP
#<==屏蔽这些信号。
}
|
以下为实战内容。
脚本放在跳板机上:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
[root@oldboy~]
# echo '[ $UID -ne 0 ] && . /server/scripts/jump.sh'>/etc/profile.d/jump.sh
[root@oldboy~]
# cat /etc/profile.d/jump.sh
[ $UID-
ne
0 ] && .
/server/scripts/jump
.sh
[root@oldboyscripts]
# cat /server/scripts/jump.sh
#!/bin/sh
#oldboy training
trapper(){
trap
':'
INT EXIT TSTP TERM HUP
#<==定义需要屏蔽的信号,冒号表示啥都不做。
}
main(){
while
:
do
trapper
clear
cat
<<menu
1)Web01-192.168.33.129
2)Web02-192.168.33.130
menu
read
-p
"Pls input a num.:"
num
case
"$num"
in
1)
echo
'login in 192.168.33.129.'
ssh
192.168.33.129
;;
2)
echo
'login in 192.168.33.130.'
ssh
192.168.33.130
;;
110)
read
-p
"your birthday:"
char
if
[
"$char"
=
"0926"
];
then
exit
sleep
3
fi
;;
*)
echo
"select error."
esac
done
}
main
|
执行效果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[root@oldboy~]
# su - jump #<==切到普通用户即弹出菜单,工作中直接用jump登录,即弹出菜单。
1)Web01-192.168.33.129
2)Web02-192.168.33.130
Pls inputa num.:
1)Web01-192.168.33.129
2)Web02-192.168.33.130
Pls inputa num.:1
#<==选1进入Web01服务器。
login in192.168.33.129.
Lastlogin: Tue Oct 11 17:23:52 2016 from 192.168.33.128
[jump@littleboy~]$
#<==按ctrl+d退出到跳板机服务器再次弹出菜单。
1)Web01-192.168.33.129
2)Web02-192.168.33.130
Pls inputa num.:2
#<==选2进入Web02服务器。
login in192.168.33.130.
Lastlogin: Wed Oct 12 23:30:14 2016 from 192.168.33.128
[jump@oldgirl~]$
#<==按ctrl+d退出到跳板机服务器再次弹出菜单。
1)Web01-192.168.33.129
2)Web02-192.168.33.130
Pls inputa num.:110
#<==选110进入跳板机命令提示符。
yourbirthday:0926
#<==需要输入特别码才能进入的,这里管理员通道,密码要保密呦。
[root@oldboyscripts]
# #<==跳板机管理命令行。
|
本文转自027ryan 51CTO博客,原文链接:http://blog.51cto.com/ucode/1951485
,如需转载请自行联系原作者