欢迎您光临本站,如有问题请及时联系我们。

ssh隧道的特别使用–ssh跳板机的实现

  一、使用场景说明:

  在公网上有一套OpenStack云环境,现在要做一次培训,共15个学员,每个学员分配三台虚拟机,每个学员都可通过ssh登陆管理三台虚拟机进行相关实验。目前国内条件有限就是公网IP地址比较少,不能给每个学员的虚拟机都绑定floatingIP,本人以前看到同事使用ssh隧道技术,专门研究了一天,居然实现了我想的功能,受6月9号蒋迪的《硬盘、RAID组与Ceph的IOPS公式与工具》的启发,现分享给大家。

  二、环境说明

  如图1所示,平台有一台跳板机,绑定公网IP103.x.x.205,可以直接ssh登陆,同一网段内还有三台Linux虚拟机,现实现通过IP103.x.x.205的不同端口分别直接登陆三台虚拟机。

跳板机

  图1 环境说明

  都是搞技术的,咱直接给出操作命令,供大家参考。

  1.peixun2的相关操作A、免秘钥登陆

  登陆方向peixun2–tiaoban

  #ssh-keygen

  一路回车,生成公钥,如图2所示。

peixun

  图2 生成公钥

  #ssh-copy-id -i .ssh/id_rsa.pub root@10.1.1.14

  把公钥拷贝到tiaoban机,为开机自动建立隧道做准备,如图3所示。

  图3 公钥拷贝到tiaoban机

  B、编辑脚本service.sh,建立反向隧道

  # viservice.sh

  #!/bin/bash

  ssh-fCNR 10002:localhost:22 root@10.1.1.14

  # chmod+x service.sh

  #./service.sh

  添加执行权限,并执行脚本。

  编辑rc.local,添加一行脚本内容。

  # vi/etc/rc.d/rc.local

  /root/service.sh

  c、验证隧道

  登陆tiaoban机,查一下10002端口是否建立,如果有10002端口说明peixun2的脚本执行成功。

  #netstat -ano|grep 10002

  给大家提个问题,这个隧道建立了,怎么删除呢?

  2.跳板机(tiaoban)的相关操作D、二次隧道的建立,编辑脚本service.sh,建立反向隧道

  # viservice.sh

  #!/bin/bash

  ssh-fCNL *:20000:localhost:10000 localhost

  ssh-fCNL *:20001:localhost:10001 localhost

  ssh-fCNL *:20002:localhost:10002 localhost

  这里直接建立了三条本地隧道。

  # chmod+x service.sh

  添加执行权限,并执行脚本。

  编辑rc.local,添加一行脚本内容。

  # vi/etc/rc.d/rc.local

  /root/service.sh

  E、验证隧道

  查一下10002、20002端口是否建立,如果有10002、20002端口说明隧道链建立成功。

  图4 验证隧道

  3.云平台的相关操作F、跳板机的防火墙及selinux的配置

  #firewall-cmd–add-service=ssh-permanent

  #firewall-cmd–add-port=20002/tcp –permanent

  #semanageport -a -t ssh_port_t -p tcp 20002

  G、云平台安全组的添加

  云平台安全组的添加,这里添加一个端口范围,如图所示。

 云平台

  图5 安全组

  4.ssh客户端的配置与操作原来的22端口修改为20002端口,如图所示。

  图6 ssh的配置

  H、远程连接

  图6 ssh的登陆

  小结:咱还是画图吧,这个应该比较直观就不解释了。

  图7 小结图

  本实验虽然很简单,但实现了一个比较实际和有用的功能,希望能给大家启发,先有问题,然后想办法去解决问题,提高自己的工作效率。


来源:本文由E8运维原创撰写,欢迎分享本文,转载请保留出处和链接!