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访问
3,ssh 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,只允许做一个空认证的情况下呢?这样的情况下,登陆服务器是不是会安全许多了呢
转载于:https://blog.51cto.com/douyue/1738586