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