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({});