redchat怎么编写shell脚本_Shell脚本实现简单跳板机

Shell脚本实现简单跳板机

阅读: 1223 | 文章分类: Shell | Tag: 系统&nbsp&nbsp

跳板机是一个可以实现跳转登陆的一个功能机器,使用者必须先跳转到跳板机再通过跳板机登陆到其他应用服务器上,这个虽然有点绕,但在某种程度上讲,这个会起到一定的保护作用。

现在有很多跳板机服务提供商都把跳板机做得很好,甚至大多数都是有一个web管理界面,涵盖了用户/用户组管理、资产管理、授权规则、会话日志等等功能,但我们今天要来做的是一个能简单实现跳转的shell

![](https://www.cloudhy.cn/uploads/blog/2018.4.22-01.png)

如上图,传统意义上,如果要去连一台服务器就得去保存以下密码,而且还得手动去连,但如果做了堡垒机,直接就可以跳到任意一台服务器上

![](https://www.cloudhy.cn/uploads/blog/2018.4.22-02.png)

堡垒机的作用是方便用户跳过去另外一台服务器上,只放行堡垒机IP可以连,其他机器都无法ssh连上去,这是能起到一个保护作用。但如果你要是跟我说,万一堡垒机被黑了那全部机不就等于被黑了,这个问题我也想过,但我想更重要的是你对堡垒机做的一个安全措施,如何去防御我这里不多讲,我这里只讲实现的方式而已。

## 涵盖知识点

一、环境变量的使用

二、while循环

三、trap屏蔽命令的使用

## 环境说明

```

使用的是虚拟机,系统为CentOS7-1708

堡垒机IP:192.168.112.9 (Server-9)

服务器IP:192.168.112.8 (Server-8)

其他 IP:192.168.112.7 (无此主机,装饰作用)

192.168.112.6 (无此主机,装饰作用)

```

我们开始写脚本

```

[root@Server-9 ~]# vim board.sh

#!/bin/bash

trap "" HUP INT QUIT TSTP

while true;do

cat <

1、Server-8

2、Server-7

3、Server-6

EOP

read -p "请输入您要跳转的服务器序号:" UIP

case "$UIP" in

1)

ssh root@192.168.112.8

;;

2)

ssh root@192.168.112.7

;;

3)

ssh root@192.168.112.6

;;

*)

echo "输入有误,请重新输入!"

esac

done

```

#### [脚本下载地址](https://www.cloudhy.cn/uploads/Shell/board.sh "脚本下载地址")

如果单纯只是ssh连接过去,那退出后就退出这个脚本程序了,所以我们使用了一个while做一个死循环,用户退出不了,加上使用trap来捕捉用户的结束信号,所以这个程序相当于一个守护进程(后面的引号表示捕捉到后面的信号后什么都不做,而后面几个“HUP INT QUIT TSTP”是终止信号,可以使用kill -l查看所有终止信号的名称,这里可以使用终止信号的序号)

赋予执行权限

```

[root@Server-9 ~]# chmod u+x board.sh

```

写完脚本,我们再来创建一个用户

```

[root@Server-9 ~]# useradd board

```

将用户密码设置为123

```

[root@Server-9 ~]# passwd board

```

设置完了之后我们将脚本拷贝到board的home目录下

```

[root@Server-9 ~]# mv board.sh /home/board/

```

再修改该文件所有者跟

```

[root@Server-9 ~]# chown board. /home/board/board.sh

```

然后我们将所有要做跳转的服务器做个免密认证 [ [如何做免密认证?](https://www.cloudhy.cn/article/27 "Linux免密登陆")]

```

[board@Server-9 ~]$ ssh-keygen

[board@Server-9 ~]$ ssh-copy-id root@192.168.112.8

```

最后修改用户的.bash_profile文件,让用户一登陆上来就执行这个脚本程序

```

[board@Server-9 ~]$ vim /home/board/board.sh

# 行未加一行

~/board.sh

```

现在已经把跳板机给做好了,可以登陆测试以下,用户登陆后就执行board.sh而且还没办法退出去,这就实现了跳板机的作用

```

# 运行结果

[root@localhost ~]# su - board # 一登陆board用户就执行了board.sh的脚本程序

上一次登录:五 4月 20 09:44:58 CST 2018pts/0 上

1、Server-8

2、Server-7

3、Server-6

请输入您要跳转的服务器序号:

请输入您要跳转的服务器序号:^C^C^C # 用户按Ctrl+C结束进程被捕捉后无操作

输入有误,请重新输入!

1、Server-8

2、Server-7

3、Server-6

请输入您要跳转的服务器序号:1 # 选择登陆的服务器

Last login: Mon Apr 23 20:55:18 2018 from 192.168.112.9

[root@localhost ~]# 登出 # 用户登出远程服务器后回到跳板机程序中

Connection to 192.168.112.8 closed.

1、Server-8

2、Server-7

3、Server-6

请输入您要跳转的服务器序号:

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值