13.1、前提条件:

1、跳板机服务器和其它服务器建立了ssh秘钥登录;

2、目前的环境:

(1)各服务器上都建立了lc用户,并给于sudo (lc ALL= NOPASSWD:ALL )权限,lc就可以看做是管理员;

(2)跳板机服务器和其它服务器建立了ssh秘钥登录,lc用户之间的;

(3)ssh已经优化,监听特定的网卡和端口,不允许root用户登录;

13.2、建立跳板机后门用户;

方便对跳板机服务器进行维护;

[root@m01 ~]# useradd -u501 lc1

[root@m01 ~]# echo 'lc1' | --stdin passwd 123456

[root@m01 scripts]# id lc1

uid=501(lc1) gid=501(lc1) 组=501(lc1)

13.3、建立脚本:

[root@m01 ~]# mkdir -p /server/scripts

1、跳板机脚本:

[root@m01 scripts]# cat jumpServer.sh

#!/bin/sh

export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lc/bin

function trapper () {

trap "" INT QUIT TSTP TERM HUP

}

function menu () {

cat <<EOF

################################HOST LIST########################################

# 1:172.16.1.41(backup) #

# 2:172.16.1.31(nfs01) #

# 3:172.16.1.8(web01) #

# q:exit-172.16.1.61(m01) #

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

EOF

}

function host () {

case "$1" in

1)

ssh -p 52113 lc@172.16.1.41

;;

2)

ssh -p 52113 lc@172.16.1.31

;;

3)

ssh -p 52113 lc@172.16.1.8

;;

q)

exit 1

;;

*)

echo -e "\033[31m input error \033[0m"

;;

esac

}

function main () {

menu

trapper

while true; do

read -p "please choose you want to connect server:" num

host $num

done

}

main

2、限制用户连接(后门):

只允许root用户和后门用户lc1(UID=501)可以登录,其它用户只能在菜单界面上,

选择登录到其它服务器或者选择退出;

(1)脚本:

[root@m01 scripts]# cat access.sh

#!/bin/sh

export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lc/bin

if [ $UID -ne 0 -a $UID -ne 501 ]; then

. /server/scripts/jumpServer.sh

fi

[root@m01 scripts]# ln -s /server/scripts/access.sh /etc/profile.d/access.sh #开机自启的

#等价于在/etc/profile配置文件中添加“. /server/scripts/access.sh”配置参数;

[root@m01 scripts]# ls -l /etc/profile.d/access.sh

lrwxrwxrwx 1 root root 25 1月 27 21:09 /etc/profile.d/access.sh -> /server/scripts/access.sh

13.4、远程连接:

1、普通用户登录:

(1)提示:如果后期添加其它用户进行登录只需要把“/home/lc/.ssh/”目录下面的私钥拷贝到新建用户的“/home/username/.ssh/”目录

下面并修改为对应用户的权限即可;

2、后门用户登录:

13.5、trap命令:

1、trap命令介绍:

trap命令是内置的命令,需要使用help trap查看帮助。trap命令用于在接收到信号后将要采取的行动。trap

命令的一种常见用途是在脚本程序被中断是完成清理的工作;

2、trap语法:

trap -l:把所有的信号打印出来;

trap -p:把当前的trap设置打印出来;

trap " " signals:为空表示这个信号失效;

trap "commands" signals:收到signals指定的信号时,信号功能复位同时执行commands命令;

trap singals:没有命令部分,信号复原等价于 trap ":" singals或trap "true" singals;

3、查看系统信号:

[root@m01 ~]# trap -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

4、需要关注的信号:

该信号在命令行使用时会被忽略,在脚本中可以使用;

5、查看键盘对应的快捷键:

[root@m01 ~]# stty -a

speed 38400 baud; rows 47; columns 108; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;

start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

6、设置信号:

在命令行设置的信号只在当前命令窗口临时有效;

(1)使ctrl+c系统信号失效:

[root@m01 ~]# trap "" 2 #后面可以接多个信号对应的数字或参数;

[root@m01 ~]# trap -p

trap -- '' SIGINT

[root@m01 ~]# 123 #此时使用ctrl+c命令无法强制退出;

[root@m01 ~]#

(2)设置ctrl+c的命令信号:

[root@m01 ~]# trap "echo -n 'you are typing ctrl+c'" 2

[root@m01 ~]# ^Cyou are typing ctrl+c

[root@m01 ~]# trap -p

trap -- 'echo -n '\''you are typing ctrl+c'\''' SIGINT

[root@m01 ~]# ^Cyou are typing ctrl+c

(3)复原ctrl+c的信号:

[root@m01 ~]# trap 2 #也可以使用trap ":" 2或是trap "true" 2;后面可以接多个信号对应的数字或参数;

[root@m01 ~]# 123^C

[root@m01 ~]#

8、trap应用案例:

(1)当程序运行完后自动清理产生的临时文件:

[root@m01 scripts]# vim test.sh

#!/bin/sh

trap "find /tmp -type f -name 'lc_*' | xargs rm -f && exit" 2

while :; do

touch /tmp/lc_$(date +%F_%T)

usleep 5000

done

[root@m01 scripts]# sh test.sh

^C[root@m01 scripts]# ls /tmp

test.txt

13.6、知识补充:

1、”:“命令:

空命令。

没有效果;命令什么也不做。

退出状态:

总是成功的。

while true = while :

2、彩色选项菜单:

function menu (){

echo -e "\033[5;31m \t\t\t\t WELCOME LC_JUMPSERVER \033[0m"

echo -e "\033[36m

####################################HOST LIST#####################################

# 1:172.16.1.41(backup) #

# 2:172.16.1.31(nfs01) #

# 3:172.16.1.8(web01) #

# q:172.16.1.61(exit-172.16.1.61(m01)) #

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

\033[0m"

}

3、密码登录次数限制脚本:

[root@m01 scripts]# cat conn.sh

#!/bin/sh

export PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lc/bin

echo "please enter the root password to get admimistrator privileges"

for i in {two,one,0};do

su - root

if [ $i != 0 ];then

echo "please input root password,now you hava $i chance"

fi

if [ $i = 0 ];then

echo "sorry you chance have use up"

exit 1

fi

done

13、ssh跳板机的更多相关文章

  1. 封装带SSH跳板机的MYSQL

    一.封装带SSH跳板机的MYSQL 二.配置settting import pymysql from sshtunnel import SSHTunnelForwarder class MyDb(ob ...

  2. Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库

    前期准备: jdbc驱动:mysql-connector-java-5.1.7-bin.jar Jmeter 要链接MySQL数据库,首选需要下载mysql jdbc驱动包(注:驱动包的版本一定要与你 ...

  3. mysql ssh 跳板机(堡垒机???)连接服务器

    跳板机(Jump Server),也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一. 正常的登录流程 使用ssh命令登录跳板机: 登录跳板机成功后,在跳 ...

  4. ssh 跳板机部署

    1.首先创建存放日志的文件夹并开放读写权限       mkdir /var/log/jump/       chmod -R 777 /var/log/jump/   2.将原有ssh程序修改为另外 ...

  5. 封装带SSH跳板机的REDIS

    一.封装ssh的redis 二.setting的配置 三.应用示例 import redis from sshtunnel import SSHTunnelForwarder from conf.se ...

  6. 使用pycharm、跳板机连接内网服务器

    使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...

  7. mac/Linux/centos ssh连接服务器以及跳板机,实现类型Xshell 功能

    1. 由于之前一段时间,公司测试服务器需要有跳板机这种操作,由于mac机器上没有类似Xshell这种程序,所以,只能自己造轮子啦. 本程序采用Shell+Expect脚本编写 具体代码请查看:http ...

  8. navicat使用跳板机连接数据库-ssh

    1. 目标数据库的域名/IP,端口,用户名,密码:如图1 2. 这时候不要点OK!选择SSH这个tab 3. 选中User SSH Tunnel:填写跳板机域名/IP,用户名,密码(注意:端口22不要 ...

  9. jmeter连接配置带跳板机(SSH)的mysql服务器

    jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...

随机推荐

  1. [刷题] PTA 03-树2 List Leaves

    程序: 1 #include <stdio.h> 2 #include <queue> 3 #define MaxTree 20 4 #define Null -1 5 usi ...

  2. Linux命令nohup实现命令后台运行并输出到或记录到日志文件

    Linux命令nohup实现命令后台运行并输出到或记录到日志文件 导读 我们在调试程序的时候,免不了要去抓一些 log ,然后进行分析.如果 log 量不是很大的话,那很简单,只需简单的复制粘贴就好. ...

  3. UltraISO制作启动盘安装CentOS7

    UltraISO制作启动盘安装CentOS7 发表于 2020-03-10  |  分类于 DevOps  |  没有评论 简单几个步骤即可完成启动盘的制作,非常便利 准备工具 准备8G优盘(启动盘制 ...

  4. 8.8-9 fsck、dd

    8.8 fsck:检查并修复Linux文件系统 fsck命令用于检查并修复文件系统中的错误,即针对有问题的系统或磁盘进行修复,类似的命令还有e2fsck命令.有关fsck的使用需要特别注意的是:    ...

  5. RSA算法在Python Django中的简单应用

    说明 RSA算法是当今使用最广泛,安全度最高的加密算法. • RSA算法的安全性理论基础 [引]根据百科介绍,对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难, ...

  6. 『政善治』Postman工具 — 14、NewMan工具的使用详解

    目录 1.NewMan工具的介绍 2.NewMan的安装 (1)安装 (2)验证NewMan环境: (3)NewMan卸载命令 3.NewMan执行Postman测试集 (1)导出collection ...

  7. Java中如何将函数名作为参数传递

    采用lambda表达式: import java.util.function.Function; class Test { public static void main(String... args ...

  8. 书列荐书 |《滚雪球:巴菲特和他的财富人生》【美】艾丽斯&#183;施罗德著

    一开始听说这本书比较不错,但是比较搞笑的是,我买了之后才发现还有个下册.于是我决定把书退回去,并用了两天的时间把它给看完了..基本看的差不多了. 沃伦·巴菲特从上小学,初中,高中就已经变得有经济头脑了 ...

  9. GPU编程和流式多处理器(二)

    GPU编程和流式多处理器(二) 2. 整数支持 SM具有32位整数运算的完整补充. 加法运算符的可选否定加法 乘法与乘法加法 整数除法 逻辑运算 条件码操作 to/from浮点转换 其它操作(例如,S ...

  10. 瞎搞!你真的懂什么是ERP、中台和低代码吗?

    欢迎关注微信公众号:sap_gui (ERP咨询顾问之家) 互联网信息圈就是这样,写个不知所云的文章,再配上博眼球的标题,立马引来众多围观,不少公众号也蜂拥转载,完全不去思考文章写得对不对,有没有道理 ...