![复杂的反向代理](https://linux22.com/image/730714/%E5%A4%8D%E6%9D%82%E7%9A%84%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86.png)
我正在寻找一句俏皮话。要点如下:
- 我有一个 Ubuntu 实例,其 SSH 暴露在互联网上
- 只有拥有密钥的单个用户才能从互联网进行 SSH。
- 该单个用户没有任何权限,因此一旦进入,我必须切换用户
- 切换用户后,我可以为端口 123 创建反向代理
我似乎无法弄清楚如何将这些步骤压缩成一行,以便我可以从外部机器访问 Ubuntu 实例上的端口 123。
答案1
设置您的服务以绑定到 ubuntu 框上的 localhost:123。
/etc/ssh/sshd_config
最后将其添加到你的 ubuntu 框中:
Match User lockeddown X11Forwarding no AllowAgentForwarding no PasswordAuthentication no AllowTcpForwarding yes PermitOpen 127.0.0.1:123 ForceCommand /bin/false
这将允许您的用户lockeddown
连接到您的 ubuntu 框并仅转发端口 123:
ssh -N -L 123:localhost:123 lockeddown@your-ubuntu-box
然后您可以通过“localhost:123”访问它:
telnet localhost 123
答案2
我将使用类似以下的方式进行本地端口转发:
ssh -L 123:localhost:123 user@remote_machine
然后在你的机器上你将能够使用 localhost:123 访问它