shell 搭建简易跳板机 原
时间:2022-06-19
本文章向大家介绍shell 搭建简易跳板机
原,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
创建跳板机脚本
[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 <<EOF
==============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 "yesr"}
"password:" { send "$passwdr" }
}
expect "]*"
send "$cmr"
expect "]*"
send "exitr"
[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登录到各机器了。。。
(adsbygoogle = window.adsbygoogle || []).push({});
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- mybatis升级为mybatis-plus踩到的坑
- Treepath
- linux 远程ssh免密登录
- npm 安装 electron taobao镜像 404错误 自用 实践笔记
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署
- 队列的一种实现:循环队列
- StackExchange.Redis .net core Timeout performing 超时问题
- G1 垃圾回收器简单调优
- Docker安装官方Redis镜像并启用密码认证 实践笔记
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(四):发布与回滚
- linux centos 安装Jenkins(非docker方式)
- mysql5.7 derived_merge=on 弄丢了我的 order by!
- 用nrm轻松管理npm镜像 自用 实践笔记
- 模拟战役(DFS||并查集解法)
- 学会这些(滑动关机、应用多开、QQ微信消息攻击、表白神器),逼格瞬间提升1000倍