实现简单跳板机脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现简单跳板机脚本相关的知识,希望对你有一定的参考价值。
参考技术A 1. 执行脚本后,显示你所能够管理的主机2. 根据主机菜单,进行选择对应的数字连接其对应的主机
3. 写一个循环,连接完一台主机后退出,还是在脚本运行中,没有退出脚本,继续连接其他主机
4. 不能使用Ctrl+c d z等操作
5. 需要每次登陆我们的会话窗口,都是自动的执行该脚本,不可以管理服务器后台 /etc/bashrc
6. 需要留一个后门,使用暗号可以退出脚本
[root@shell ~]# cat /scripts/jumpserver.sh
#!/bin/bash
#1.定义主机清单菜单
menu()
cat<<EOF
##########################
1. DB01-10.0.0.51
2. DB02-10.0.0.52
3. WEB01-10.0.0.7
4. 显示主机列表清单
##########################
EOF
#2.打印清单
menu
#3.进入循环
trap "" HUP INT TSTP #禁止输入Ctrl+c +d +z等操作
while true
do
read -p "请根据菜单输入你要进行连接的主机:" Num
#4.根据菜单列表进行编写对应的命令序列
case $Num in
1)
echo "你选择了连接DB01-10.0.0.51.............."
echo "正在测试DB01主机的连通情况.............."
ping -c1 -W1 10.0.0.51 &>/dev/null
if [ $? -eq 0 ];then
echo "DB01主机的连通情况是完好的!正在连接中................."
ssh root@10.0.0.51
else
echo "DB01主机的网络不可达!无法进行远程连接!"
fi
;;
2)
echo "你选择了连接DB02-10.0.0.52.............."
echo "正在测试DB02主机的连通情况.............."
ping -c1 -W1 10.0.0.52 &>/dev/null
if [ $? -eq 0 ];then
echo "DB02主机的连通情况是完好的!正在连接中................."
ssh root@10.0.0.52
else
echo "DB02主机的网络不可达!无法进行远程连接!"
fi
;;
3)
echo "你选择了连接WEB01-10.0.0.7.............."
echo "正在测试WEB01主机的连通情况.............."
ping -c1 -W1 10.0.0.7 &>/dev/null
if [ $? -eq 0 ];then
echo "WEB01主机的连通情况是完好的!正在连接中................."
ssh root@10.0.0.7
else
echo "WEB01主机的网络不可达!无法进行远程连接!"
fi
;;
4)
clear
menu
;;
anhao)
echo "管理人员退出脚本通道!"
exit
;;
*)
echo "请不要乱输!请按照要求输入!"
esac
done
[root@shell ~]# tail -1 /etc/bashrc
/bin/sh /scripts/jumpserver.sh
shell 实现跳板机
zbuz添加用户,并批量分发ssh公钥脚本:
#!/bin/bash . /etc/init.d/functions function add_user(){ jumper="$1" useradd ${jumper} echo 123456 | passwd --stdin ${jumper} >/dev/null 2>&1 if [ `grep -o $jumper /etc/passwd | wc -l` -gt 1 ] then action "add user ${jumper} success" /bin/true else action "add user ${jumper} success failure" /bin/false exit 0 fi su ${jumper} -c "ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa >/dev/null 2>&1" if [ $? -eq 0 ] then action "Create ssh pub key success" /bin/true else action "Create ssh pub key failure" /bin/false fi } add_user $* for n in 7 8 do /usr/bin/expect /server/scripts/fenfa_key.exp /home/${jumper}/.ssh/id_dsa.pub ${jumper} 11.0.0.${n} >/dev/null 2>&1 if [ $? -eq 0 ] then action "fenfa ssh pub key to 11.0.0.${n} success" /bin/true else action "fenfa ssh pub key to 11.0.0.${n} failure" /bin/false fi done
expect实现无密码验证
#!/usr/bin/expect if { $argc != 3 } { puts "usage:expect $argv0 sshkey user host" exit } #define var set sshkey [lindex $argv 0] set user [lindex $argv 1] set host [lindex $argv 2] set password "123456" spawn ssh-copy-id -i $sshkey [email protected]$host expect { "yes/no" {send "yes\r";exp_continue} "*password" {send "$password\r"} } expect eof
简单shell脚本实现跳板机
#!/bin/bash function traper(){ trap ‘‘ INT QUIT TSTP TERM HUP } function menu(){ cat <<-EOF ================Host List============== 1)11.0.0.7 2)10.0.0.8 3)exit ================Host End=============== EOF } function host(){ USER=test09 case "$1" in 1) ssh [email protected] ;; 2) ssh [email protected] ;; 3) exit esac } function main(){ while true do traper clear menu read -p ‘Pls input your choice:‘ num host $num done } main
开机脚本调用跳板机脚本
cat /etc/profile.d/jump.sh #!/bin/bash [ $UID -ne 0 ] && [ $USER != "zihang" ] &&/bin/bash /server/scripts/tiaoban.sh
========================不足之处,请多指教=========================
本文出自 “迷失在Linux” 博客,请务必保留此出处http://zihang.blog.51cto.com/158746/1913476
以上是关于实现简单跳板机脚本的主要内容,如果未能解决你的问题,请参考以下文章