linux中的jumpserver
jumpserver原理图
前端到跳板机jumpserver的alice用户密码,和jumpserver到后端服务器的密码可以不同。用户可以通过jumpserver登陆后端服务器但是不能登陆到jumpserver服务器本身,需要在jumpserver服务器上设置登陆用户登陆后的初始化环境中定义登陆到后端服务器的选项菜单,并禁止用户退出到jumpserver服务器本身上来。可以定义登陆到后端服务器的菜单选项脚本jumpserver.sh,然后再配置跳板机umpserver的账户alice的初始配置文件/home/alice/.bash_profile中指定执行的菜单脚本文件jumpserver.sh
jumpserver.sh代码如下:
- 跳板机上编写jumpserver.sh脚本,默认为密码验证登陆方式
1 #!/usr/bin/bash- 2
- 3 #jumpserver
- 4
- 5 trap “ ” HUP INT OUIT TSTP #捕捉中断信号,并什么都不处理
- 6
- 7 web1=192.168.0.1
- 8
- 9 web2=192.168.0.2
- 10
- 11 mysql1=192.168.0.3
- 12
- 13 clear
- 14
- 15 while : #:代表条件为真,相当于true
- 16
- 17 do
- 18
- 19 cat <<-eof
- 20
- 21 ======================================
- 22
- 23 # jumpserver
- 24
- 25 # 1) web1
- 26
- 27 # 2) web2
- 28
- 29 # 3) mysql1
- 30
- 31 ======================================
- 32
- 33 eof
- 34
- 35 #echo -n选项代表打印的内容默认无换行符
- 36
- 37 echo -en “\e[1;32m input a number: \e[0m”
- 38
- 39 read num
- 40
- 41 case “$num” in
- 42
- 43 1)
- 44
- 45 ssh alice@$web1
- 46
- 47 ;;
- 48
- 49 2)
- 50
- 51 ssh alice@$web2
- 52
- 53 ;;
- 54
- 55 3)
- 56
- 57 ssh alice@$mysql1
- 58
- 59 ;;
- 60
- 61 “”) #代表什么都不输入
- 62
- 63 ;;
- 64
- 65 *)
- 66
- 67 echo "error"
- 68
- 69 esac
- 70
- 71 done
#使用密钥验证登陆方式,需要先在跳板机上执行ssh密钥验证,而且是通过alice账号执行该命令(因为需要通过alice普通账号来登陆到后端服务器)- ssh-keygen
- ssh-copy-id 192.168.0.1
- ssh-copy-id 192.168.0.2
- ssh-copy-id 192.168.0.3
然后执行sh jumpserver.sh脚本即可