博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell跳板机(较复杂)
阅读量:6121 次
发布时间:2019-06-21

本文共 5260 字,大约阅读时间需要 17 分钟。

hot3.png

创建 jumpserver.sh

创建跳板机存放目录:[root@jumpserver ~]# mkdir /home/jumpserver[root@jumpserver ~]# cd /home/jumpserver/创建脚本:[root@jumpserver jumpserver]# vim jumpserver.sh#!/bin/bash#定义变量ip=`/sbin/ifconfig ens33|sed -n "2p"|awk '{print $2}'`IPX=(ipipip)current_date=`date +%Y-%m-%d-%H:%M:%S`dis_manumenu=""#远程服务器的账号:user="root"# Source function library. . /etc/rc.d/init.d/functions#定义规则new_echo () {if [ -z "$2" ];then    COLOR=33elif [ $2 == red ];then    COLOR=31elif [ $2 == green ];then    COLOR=32elif [ $2 == blue ];then    COLOR=36elif [ $2 == purple ];then    COLOR=35elif [ $2 == white ];then    COLOR=39else       echo 'new_echo function use error'       exitfiif [ -z "$4" ];then COLOR1=33elif [ $4 == red ];then COLOR1=31elif [ $4 == green ];then COLOR1=32elif [ $4 == blue ];then COLOR1=36elif [ $4 == purple ];then COLOR1=35elif [ $4 == white ];then COLOR1=39else     echo 'new_echo function use error'     exitfiif [ -z "$3" ];then        echo -en "\033[1;${COLOR}m""\033[3m$1 \033[0m\n"   else        echo -en "\033[1;${COLOR}m""\033[3m$1 \033[0m\033[70G\033[1;${COLOR1}m\033[3m $3 \033[0m\n"fi}#信号捕捉signals () {for signal in `seq 1 1000`  do    trap ':' INT EXIT TSTP TERM HUP $signal &> /dev/nulldoneclearfor signal in `$name`  do        trap ':' INT EXIT TSTP TERM HUP $signal &> /dev/nulldoneclear}signals#回显函数(隐藏明文信息)getchar () {    stty cbreak -echo    dd if=/dev/tty bs=1 count=1 2>/dev/null    stty eof ^c -cbreak echo }named () {while :  do    ret=`getchar`    if [ x$ret =  x ];then        echo        stty eof ^c        break    fi    str="$str$ret"    printf "*"doneecho "$str" >~/nameserver.p}#判断账号登陆部分public_user () {public=~if [ -z $CHECK ];then       clear       new_echo "----------------------------------------------------------------------------------" green       new_echo "Connection '$ip'($USER)" purple "[ SUCCESS ]" green       new_echo "`date +'%x %X'` " white       new_echo "--------------------------------- use ${SECONDS}s -----------------------------------------" green       echo 用户:$user-"现在开始登陆,请稍等..............................."       /bin/true       ssh  $user@$ip       sleep 2fi}#################################################################################验证账号登录while :   do    printf '''  请输入登陆跳板机验证标识:'''    named    name=`cat ~/nameserver.p`        repa=`cat /opt/username.p`    if [  "$name" == "$repa" ];then        echo '''    认证标识正确,欢迎登陆跳板机.............'''        /bin/true        break      else        echo '''       对不起,您输入的认证标识有错误,无法登陆跳板机,已结束操作............'''        /bin/false        exit    fidonerm -f ~/nameserver.psleep 1#生成密钥:`which ssh-keygen` -t rsa -P '' <

说明: 至此跳板机以搭建完成,以下是一些菜单选项,可以根据个人需求选择使用!!!

添加菜单选项

使用本菜单选项的方法:将上面jumpserver.sh脚本中“登录界面”下的参数换成下面的参数即可。

cat <
[---------------------------公司服务器菜单---------------------------]:<-- **1)利华app项目 ${IPX[0]} (群集数:8) **2)别克app项目 ${IPX[1]} (群集数:18) **3)日志服务器项目 ${IPX[2]} (群集数:11) **4)测试服I 未使用 (群集数:13) **5)测试服II 未使用 (群集数:13) **6)测试服III 未使用 (群集数:13) **7)测试服IV 未使用 (群集数:13) **8)测试服V 未使用 (群集数:13) **9)存储服务器 未使用(群集数:13) **10)测试服VI 未使用 (群集数:13) **11)本地测试服I 未使用 (群集数:13) **12)本地测试服II 未使用 (群集数:13) ############################################################################## ==============================================================================EOFread -p "请选择(例子:1 ): " numcase $num in1) ip=${IPX[0]} public_user;;2) ip=${IPX[1]} public_user;;3) ip=${IPX[2]} public_user;;0) echo -e "\033[31m---------------------请输入需要登录服务器的ip、账号、密码等信息----------------------\033[0m\n" read -p "服务器ip:" host_ip if [ -z $host_ip ];then read -p "请输入有效的服务器ip地址:" host_ip if [ -z $host_ip ];then /bin/true exit fi fi read -p "服务器用户(默认回车是root):" host_name if [ ! -z $host_name ];then read -p "ssh服务端口号(默认回车是22):" host_post if [ -z $host_post ];then ssh $host_name@$host_ip /bin/true exit else ssh $host_name@$host_ip -p $host_post /bin/true exit fi else read -p "ssh服务端口号(默认回车是22):" host_post if [ -z $host_post ];then ssh root@$host_ip /bin/true exit else ssh root@$host_ip -p $host_post /bin/true exit fi fi /bin/true exit;;*) clear echo 账户:$USER-"您的输入有误,已退出,请重新登录,谢谢................" /bin/true exit;;esac

编辑普通用户局部变量文件

[root@jumpserver jumpserver]# vim /home/jumpserver/.bashrcsh ~/jumpserver.shexit

配置认证文件

[root@jumpserver jumpserver]# vim /opt/username.padai

说明: 该文件的作用是设定在使用jumpserver.sh时的跳板机验证标识。

为跳板机配置公钥

以下内容只在普通用户测试使用。。。

创建用户密码文件

在/home/junpserver目录下创建file_useradd.txt:

[root@jumpserver jumpserver]# vim file_useradd.txt#文件内容格式:账号       密码192.168.8.130  123456

之后直接执行脚本即可!

[root@jumpserver jumpserver]# vim /home/jumpserver/ssh-key-add.sh#!/bin/bash#定义账号密码:#PWDD='XXXX'#定义账号密码文件(必须修改)num=`cat /home/jumpserver/file_useradd.txt | wc -l`WCD=`wc /home/jumpserver/file_useradd.txt |awk '{print $2}'`#定义主机#ZHUJI=(#ip1#ip2#)#------------------------------------------------------------------------------------##生成密钥:`which ssh-keygen` -t rsa -P '' <

转载于:https://my.oschina.net/adailinux/blog/1544808

你可能感兴趣的文章
腾讯云加入LoRa联盟成为发起成员,加速推动物联网到智联网的进化
查看>>
从Python2到Python3:超百万行代码迁移实践
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
简洁优雅地实现夜间模式
查看>>
四年C++老炮,转攻Python实践分享
查看>>
react学习总结
查看>>
微软正式发布PowerShell Core 6.0
查看>>
Amazon发布新的会话管理器
查看>>
InfoQ趋势报告:DevOps 和云计算
查看>>
舍弃Python,为什么知乎选用Go重构推荐系统?
查看>>
使用 Nginx 转发 Oracle 端口
查看>>
mysql之 mysql数据库压力测试工具(mysqlslap)
查看>>
3星|《哈佛商业评论》2017年第7期
查看>>
L1-1. 出生年
查看>>
Spring4-<util:map>的使用
查看>>
川普上台,VR游戏开发者也来恶搞蹭热度
查看>>
c#访问各数据库的providerName各驱动
查看>>
几个网址
查看>>
记录.NET Framework的所有版本
查看>>
String的一些蹊跷
查看>>