shell开发跳板机功能脚本
利用Shell开发跳板机功能脚本案例
范例17_6:开发企业级Shell跳板机案例。要求用户登录到跳板机仅能执行管理员给定的选项动作,不允许以任何形式中断脚本到跳板机服务器上执行任何系统命令
方法1:
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.
|
2)实现传统的远程连接菜单选择脚本
菜单脚本如下:
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 #<==屏蔽这些信号。
}
|
4)用户登录跳板机后即调用脚本(不能命令行管理跳板机),并只能按管理员的要求选单。
以下为实战内容。
脚本放在跳板机上:
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] # #<==跳板机管理命令行
|
转载于:https://blog.51cto.com/13281352/1971686
shell开发跳板机功能脚本相关推荐
- linux shell跳板机,用shell开发跳板机
信号列表: 在linux中和信号相关的常见命令为kill及trap命令,下来如何利用trap控制跳板机脚本来使用命令: 命令:kill -l 和 trap -l 企业实战中linux系统的重要信号 ...
- linux 跳板机脚本,shell 实现跳板机
zbuz添加用户,并批量分发ssh公钥脚本:#!/bin/bash . /etc/init.d/functions function add_user(){ jumper="$1" ...
- idea连接跳板机_跳板机服务(jumpserver)
一.跳板机服务作用介绍 1.有效管理用户权限信息 2.有效记录用户登录情况 3.有效记录用户操作行为 二.跳板机服务架构原理 三.跳板机服务安装过程 第一步:安装跳板机依赖软件 yum -y inst ...
- Linux下Dialog+Shell三层目录专业规范跳板机脚本
#Dialog+Shell介绍 Dialog+Shell结合使用,方能体现出Dialog图形化的效果,在运维的时候,使用图形化界面,能给你一个更直观的感受,相信你会喜欢上他的 #创建脚本目录 [ro ...
- expect和shell脚本自动登录跳板机和使用AppleScript实现自动登录vpn软件
作为一个程序员,一定要学会"偷懒",能写程序写脚本处理的一定不要自己手动搞.我就是一个懒人,每次登录公司的跳板机我都无比痛苦,因为这个过程分为下面这些步骤. 敲跳板机命令 输入密码 ...
- shell脚本实现通过ssh跳板机(动态密码)一键登陆服务器(相关问题与解决方案)
在我日常工作中,登陆服务器一般分为两个个步骤,通过ssh命令登陆跳板机,然后再通过跳板机登陆服务器.登陆跳板机又分为三个步骤,输入一长串用户名,再通过手机令牌查看动态密码,输入密码+动态码.这样每次登 ...
- linux 跳板机脚本,shell 搭建简易跳板机
创建跳板机脚本 [root@jumpserver sbin]# pwd /usr/local/sbin [root@jumpserver sbin]# vim jumpserver.sh #!/bin ...
- 齐志科技双层跳板机登陆机制v3.3.6 --shell脚本自动登陆实现
#!/usr/bin/expect### 新版双层跳板机版本 #### 设置15秒超时时间 set timeout 15# 设置参数名称 set jumpusr [lindex $argv 0] se ...
- shell开发的主机登录管理脚本
适配windows terminal 背景 设计 实现 流程图 脚本帮助文档 录入主机 登录主机 上传下载文件 操作主机记录 列出主机信息 代码展示 一个shell 开发的小型跳板机,献丑了 笔者的w ...
最新文章
- 云服务器怎么添加虚拟内存,云服务器怎么添加虚拟内存
- 程序员因拒绝带电脑回家被开除,获赔 19.4 万元
- 图表中各个参数的应用( AChartEngine XMultipleSeriesRenderer
- 可重构麦轮全向移动机器人分析(图片版)
- Win10环境下,SecureCRT连接不上虚拟机,显示连接超时Connection time out. 而且网络连接里没有网络适配器VMnet1和VMnet8,互ping也不同。...
- [NLP]OpenNLP块检测器(Chunker)的使用
- JNI中访问JList的代码
- sqlmap入门使用教程
- MENTOR 安装过程
- 冰雪之冠上的明珠与东方明珠 辉映在黄浦江两岸
- iPhone 8价格已破发!苹果无奈只能减产
- 【项目小结】爬虫学习进阶:获取百度指数历史数据
- Node 开发一个多人对战的射击游戏(实战长文)
- L1、L2正则化的原理及适用场景
- 读书笔记-袁腾飞讲高效学习法
- 基于华为WAC双机VRRP热备份下旁挂三层组网隧道转发模式解决方案
- html转盘游戏,使用Javascript和CSS3实现一个转盘小游戏(实战篇)
- 假设有一条绳子长3000m,每天剪去一半,请问需要几天时间,绳子的长度会短于五米?
- 在Chrome中打印CSDN博客内容
- vue中使用MathJax展示数学公式
热门文章
- Sql Server实用操作-动态sql语句基本语法
- 进程文件: cidaemon or cidaemon.exe
- china-pub赠书啦,超值畅销书5本
- 一件有趣的事:用Python爬了自己的微信朋友圈
- 搭建yum源,配置yum源
- (一).NET SubSonic2.0 的配置
- kali linux ssh不要密码登录密码,kali linux 登录ssh服务常见问题
- 个人博客前端模板_博客设计——概述
- BZOJ1036: [ZJOI2008]树的统计Count
- BCB key事件中判断Shift、Alt、Ctrl状态