我们有一个 Windows 桌面应用程序,它通过套接字连接连接到第 3 方服务器。第 3 方服务器要求我们从固定的公共 IP 地址连接。我们需要从不同的 IP 地址进行连接,所以我设置了一个(Linux)服务器来隧道连接,以便它向 3rd 方服务器查看所有连接始终来自同一个 IP 地址:
ssh -N -L port:127.0.0.1:port account@ip -p port2
隧道似乎工作正常;作为测试,我可以从创建它的帐户远程登录到它。
为了允许 Windows 机器(运行应用程序)通过隧道,我在 ssh 命令行中添加了 -g。现在其他机器也可以通过隧道远程登录。到目前为止一切正常。但是,我希望能够限制谁可以使用隧道。当我远程登录到 Linux 服务器时,系统会提示我输入创建隧道的帐户的用户名/登录名;相反,只是创建了连接,没有任何限制。我不想使用 IP 地址过滤,因为这就是我首先设置 Linux 服务器的原因(以允许任何 IP 地址)。从另一台机器连接到隧道时,如何让 Linux 服务器提示输入用户名/密码?这可以通过 ssh 的一些额外或不同的命令行选项来完成,还是我需要使用其他东西?
我期待在 Windows 桌面机器上运行类似bitvise tunellier的东西。因此,我会告诉 Windows 桌面应用程序连接到它运行的 Windows 机器上的本地端口。Tunellier 将这个本地端口通过隧道连接到 Linux 服务器。Linux 服务器又会通过隧道连接到第 3 方服务器。