在内网有两台机器A,B,是可以互通的。有一个VPN,可以让外面的用户连接到A机器,但是连接不到B。所以就需要通过A来转发一下。
首先配置对机器A 的免费登录
Host A
HostName 172.22.96.16
User root
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
因为A机器也是需要VPN登录,在本地启动一个代理,那么在ssh的时候,直接通过代理就可以访问到A了。
让A机器可以免密访问B,同时将自己主机的公钥也配知道B上(不配置也可以,就是需要输入密码)
然后在自己的机器做如下配置
Host B
HostName 172.16.29.143 #B主机IP
User root # B主机用户
Port 2022 # B主机的ssh端口
ProxyJump A # 通过A跳转
然后通过 ssh B
就可以直接登录到B了。上面的配置内容是都是写在 ~/.ssh/config
。
ssh-keygen -t rsa -C "[email protected]" -f /path/to/your/file
我们有一台内网机器B,和一台有公网IP的服务器A,我们想要C(其他的用户)能访问到B
我们在B机器上执行ssh的反向代理
ssh -fNR a-port:b-host:b-port a-host
就是在A主机上开个端口a-port
, C只要访问a-ip:a-port
就可以访问到B的服务了。