ssh隧道/跳板的使用

  所有服务器都只允许跳板机远程登录之后,用户需要先建立与跳板机的隧道连接,然后再通过隧道连接到远端服务器,使用上来讲增加了一个步骤

    

     跳板机IP 192.168.1.1:1379  所拥有的用户 root  www 

     服务器IP 192.168.1.5:2000  所拥有的用户 root  test

  一,跳板机配置

1,跳板机需要开启forword转发功能,需要一个用户,把用户实现公钥私钥免密码认证,这里只创建了www用户

2,跳板机修改ssh配置文件,取消明文密码认证,只允许公钥私钥认证

 vi /etc/ssh/sshd_config

 .....

  PasswordAuthentication no

 .....

  二,线上服务器的操作

2,线上服务器需要创建用户,这里创建了test用户,在防火墙设置只允许跳板机的IP访问

3ssh test@192.168.1.5 -p 2000 -o ProxyCommand='ssh -p 1379 www@192.168.1.1 -W %h:%p

这段命令的意思是,我使用www用户,来经过跳板机的认证,但是我登陆服务器的话,则是需要test用户登录服务器,跳板机并没有test用户

 

为了使用简单,可以写到配置文件里边

vim ~/.ssh/config

Host tiaoban   #任意名字,随便使用

    HostName 192.168.1.1   #这个是跳板机的IP,支持域名

    Port 1379      #跳板机端口

    User www       #跳板机用户

    IdentityFile ~/.ssh/id_rsa   #验证跳板机的秘钥对

 

 

Host nginx      #同样,任意名字,随便起

    HostName 192.168.1.5  #真正登陆的服务器,不支持域名必须IP地址

    Port 2000   #服务器的端口

    User test   #服务器的用户

    IdentityFile ~/.ssh/lei.pem    #服务的密钥对,可以和跳板机的一样,也可以不一样

    ProxyCommand ssh www@tiaoban -W %h:%p  #指定代理

 

配置好之后,直接使用ssh nginx就直接到服务器了

 

此时关于跳板机,简单的在说下逻辑

 

这个跳板机的配置,已经相当于经过了两次认证,跳板机认证不过去的话,也是连接不了服务器

跳板机认证过去了,服务器认证不过去,同样也是不行的,在上边的配置文件里,我特地使用了两个用户,两队秘钥串,来进行测试

 

那么问题来了,是不是我的跳板机可以任意跳转呢?

不,我在跳板机可以配置,我只对那个IP,那个端口建立隧道,别的,一律不管同时,跳板机用户使用公钥私钥的方式相对来说提高一定的安全性

   

此时跳板机可以添加谷歌的二次动态码验证,来提高安全度

不妨可以脑补一下,我可以将我的跳板机用户设置不允许登陆bash,只允许做一个空认证的情况下呢?这样的情况下,登陆服务器是不是会安全许多了呢