很多时候服务器集群是有跳板机,远程进行任何操作的时候都是先登陆跳板机,再登陆内网的机器。
我们把本机叫做local,跳板机叫做tiaoban,真正要连接的集群内的服务器叫做node1。如何快速从local登陆到node1? 操作如下:
方法一:
1. 在 tiaoban 上输入如下命令
ssh -CfNg -L 3333:node1:22 root@node1
-L表示local,即在跳板机上开设一个3333的端口,保证有ssh连接到3333时,转发到node1的22端口。
然后在local去连跳板机的3333端口
ssh -p 3333 root@tiaoban
注意,上面我都用的是root。实际是node1的用户是什么就写什么,这样就可以直接登陆到机器node1了。
这种方法会在跳板机上打开3333端口,暴露了端口。
方法二:通过proxycommand 和 netcat
这种方法不需要对tiaoban和node1进行任何操作,只需在local机器的ssh_config(或是~/.ssh/config)添加如下配置
Host node1 HostName node1 Port 22 ProxyCommand ssh -p 3333 root@tiaoban ; nc %h %p
然后在local输入
ssh root@node1
这样可直接转发,nc的作用是做一个tunnel,在跳板机上不会暴露端口。
应用:在本地启一个 socks5 代理
ssh -D 1081 jpuyy@yyhome -p 22
在外面连接家里的路由器界面
ssh -L 8989:192.168.1.1:80 [email protected] # 浏览器打开 127.0.0.1:8989 即可管理路由器
Leave a Reply