创建跳板机脚本

[root@jumpserver sbin]# pwd

/usr/local/sbin

[root@jumpserver sbin]# vim jumpserver.sh

#!/bin/bash

function trapper(){

trap '' INT QUIT TSTP TERM HUP

}

function menu(){

cat <

==============Host List==============

1-192.168.14.125/24

2-192.168.14.126/24

3-192.168.14.127/24

4-192.168.14.128/24

5-192.168.14.129/24

6-192.168.14.130/24

7-192.168.14.131/24

8-192.168.14.133/24

9-192.168.14.134/24

10-192.168.14.135/24

0-Exit system

=====================================

EOF

}

function host(){

case "$1" in

1)

ssh user3@192.168.14.125

;;

2)

ssh user3@192.168.14.126

;;

3)

ssh user3@192.168.14.127

;;

4)

ssh user3@192.168.14.128

;;

5)

ssh user3@192.168.14.129

;;

6)

ssh user3@192.168.14.130

;;

7)

ssh user3@192.168.14.131

;;

8)

ssh user3@192.168.14.133

;;

9)

ssh user3@192.168.14.134

;;

10)

ssh user3@192.168.14.135

;;

0)

exit 0

esac

}

function main(){

while true

do

trapper

clear

menu

read -p "Pls input your choice:" num

host $num

done

}

main

更改文件权限:

[root@jumpserver ~]# chmod a+x /usr/local/sbin/jumpserver.sh

########################################################

加入系统启动文件:

[root@m01 profile.d]# vim /etc/profile.d/jumpserver.sh

[ $UID -ne 0 ] && \

. /usr/local/sbin/jumpserver.sh

#该部分需机器重启后生效

expect远程创建用户及密码(普通用户)

给各主机创建用于登录的普通用户及密码。

[root@jumpserver sbin]# cat /tmp/expect/ip.list

192.168.14.125

192.168.14.126

192.168.14.127

192.168.14.128

192.168.14.129

192.168.14.130

192.168.14.131

192.168.14.133

192.168.14.134

192.168.14.135

创建分发脚本:

[root@jumpserver sbin]# vim ssh_exe.expect

#!/usr/bin/expect

set host [lindex $argv 0]

set passwd "password"

set cm [lindex $argv 1]

spawn ssh root@$host

expect {

"yes/no" { send "yes\r"}

"password:" { send "$passwd\r" }

}

expect "]*"

send "$cm\r"

expect "]*"

send "exit\r"

[root@jumpserver sbin]# chmod 755 ssh_exe.expect

创建本地执行脚本:

[root@jumpserver sbin]# vim ssh_exe.sh

#!/bin/bash

for ip in `cat /tmp/expect/ip.list`

do

/usr/local/sbin/ssh_exe.expect $ip "useradd user3;echo 'password'|passwd --stdin user3"

done

创建完成后执行脚本:ssh_exe.sh

分发密钥(使用普通用户)

在jumpserver创建密钥对,并将公钥分发到各机器的普通用户。

首先在要登录的机器上创建用户并设置密码:

[root@localhost ~]# useradd mytest

[root@localhost ~]# passwd mytest

在跳板机创建密钥对:

[root@jumpserver ~]# ssh-keygen

将公钥分发到客户机:

[root@jumpserver ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub user3@192.168.14.125

[root@jumpserver ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub user3@192.168.14.126

……

验证

[root@jumpserver ~]# ssh 'user3@192.168.14.125'

[mytest@dir1~]#

即,此时可以在jumpserver机器执行脚本/usr/local/sbin/jumpserver.sh登录到各机器了。。。

linux 跳板机脚本,shell 搭建简易跳板机相关推荐

  1. Linux Centos7 搭建简易堡垒机安装jailkit实现chroot

    Linux Centos7 搭建简易堡垒机安装jailkit实现chroot 一.什么是堡垒机 堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手 ...

  2. linux中间隔10ping一次脚本,linux批量ping脚本shell

    linux批量ping脚本shell *ping失败后的返回字符串 5 packets transmitted, 0 received, 100% packet loss, time 3999ms* ...

  3. linux 跳板机脚本,shell 实现跳板机

    zbuz添加用户,并批量分发ssh公钥脚本:#!/bin/bash . /etc/init.d/functions function add_user(){ jumper="$1" ...

  4. linux编写随机数脚本,Shell使用RANDOM编写1-10以内随机数

    Shell使用RANDOM编写1-10以内的抽奖脚本,三次抽奖机会 1.创建一个脚本 vim /root/chou.sh 2.打开的文本中编辑内容 x=$[RANDOM%10+1] #系统随机数除十取 ...

  5. Linux下利用脚本全自动搭建论坛

    一.利用脚本全自动安装虚拟机 在原来手动安装基础上进行以下操作: 1.卸载httpd.mariadb.php以及数据库链接服务,如下所示: 2.删除发布目录和数据库下面的信息,如下所示: 全自动脚本搭 ...

  6. linux写日历脚本,shell脚本实现日历的屏幕控制

    首先什么是脚本? 脚本语句由Linux系统解释执行.脚本由脚本语言与可执行的二进制文件或命令组成,因此,脚本是不需要再编译链接的.为了与高级语言源程序加以区别,Linux中将其称为 "脚本& ...

  7. linux 的动画脚本,shell脚本动画小工具

    shell脚本动画小工具 看gif图: shell脚本版 脚本内容如下: #!/usr/bin/env bash ## ---------------------------------------- ...

  8. linux服务器巡检脚本shell

    #!/bin/bash #主机信息每日巡检IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #环境变量PATH没 ...

  9. linux文件比较脚本,shell脚本之对比不同目录的下的文件

    让负责一部分代码的版本,担心公共目录下有人可能会稍微修改部分代码,因此把代码备份到自己的一个目录中,上传svn之前,如果发现公共目录的下的文件被修改,则找出变化部分,避免出现不可知的文件变化. 使用d ...

最新文章

  1. onchange事件只生效一次的问题
  2. C语言程序设计50例(一)(经典收藏)
  3. LeetCode 123. Best Time to Buy and Sell Stock III--Python解法--动态规划--数学题
  4. Javascript-稳妥构造函数模式
  5. 从零起步CMFCToolBar用法详解
  6. 【C语言】控制台窗口图形界面编程(六):光标设置
  7. 超过1w的Github Star大佬和他们的公众号,太强了!
  8. 自己动手写操作系统(二)一个最小的“操作系统”
  9. 关于CPU的一些基本知识总结
  10. Spring的@Transactional事务注意事项
  11. codevs 1164 统计数字
  12. mysql主从延迟设置
  13. DoIP(四)—— 时间参数
  14. apache 压力测试工具 ab ,带post参数,token请求
  15. APP 兼容性测试是什么?8年测试老鸟告诉你
  16. 7-2 求交错序列前N项和 (10 分)
  17. uniApp H5微信网页授权,微信支付
  18. 微机原理、汇编语言与接口技术(韩晓茹)课后答案
  19. root后充电很慢,root后开机慢
  20. 骨传导蓝牙耳机哪个牌子好?最受欢迎的五款骨传导蓝牙耳机

热门文章

  1. 笔记整理nodeJS
  2. 解构微信(一):邮件中诞生与开发的逆境
  3. 辗转相除法-欧几里得算法
  4. MySQL快速生成100W条测试数据
  5. C#Maeshal类——托管资源和非托管资源转换
  6. excel中提取箱单中的箱数
  7. 使用\begin{aligned} 出现 Environment aligned undefined.解决办法
  8. apple magic mouse 鼠标 windows 下如何设置滚轮方向 使其 和 mac 一致
  9. 03基础自绘-05魔法老鼠-magicmouse
  10. RPC-BDY(5)-服务自动注销、负载均衡