我正在尝试与远程 Windows 服务器建立 RDP 连接。由于防火墙限制,我需要在 2 个远程 ssh 服务器上创建 SSH 隧道。
win7 + putty => sshsrv1 (无 root) sshsrv1 => sshsrv2 (root) sshsrv2 与 winsrv2008 位于同一网络中,我们需要连接它。
在 Putty 中,我添加了一个端口以在“隧道”中转发。如果我只使用 1 个 ssh 服务器,这可以正常工作。我无法让它在 2 个 ssh 服务器上工作,而这正是我真正需要的。
问题:如何在不成为 root 的情况下在 sshsrv1 上进行端口转发?这可能吗?
答案1
来自 openssh 手册页:“只有超级用户可以转发特权端口”。
1024 以下的端口被视为“特权”端口。RDP 默认使用 3389,因此超出了该范围。
假设ABCD为Winsrv2008机器的ip地址,则可以:
- 将Win7上的端口pX转发到sshsrv1端口pY
- 从 sshsrv1 上的命令行打开到 sshsrv2 的 ssh 会话,将端口 pY 转发到主机 ABCD 上的端口 3389(选项 -L pY:ABCD:3389)
- 在 win7 上,将您的 RDP 客户端连接到 127.0.0.1:pX
您可以根据需要选择端口 pX 和 pY,因此请避免使用特权端口/正在使用的端口