如何让SSH隧道提示input用户名和密码

我们有一个Windows桌面应用程序,通过套接字连接连接到第三方服务器。 第三方服务器要求我们连接一个固定的公共IP地址。 我们需要从不同的IP地址进行连接,所以我设置了一个(Linux)服务器来隧道连接,以便它看起来像第三方服务器,所有连接始终来自同一个IP地址:

ssh -N -L端口:127.0.0.1:端口帐户@ ip -p端口2

隧道似乎工作正常; 作为一个testing,我可以从它创build的帐户远程login到它。

为了允许Windows机器(运行应用程序)通过隧道,我将-g添加到了ssh命令行。 现在其他机器也可以通过隧道远程login。 一切工作到目前为止。 但是,我希望能够限制谁可以使用隧道。 当我telnet到Linux服务器时,我希望提示input创build隧道帐户的用户名/login名; 相反,连接只是没有限制地创build。 我不想使用IP地址过滤,因为这是我首先设置Linux服务器的原因(允许任何IP地址)。 从另一台机器连接到隧道时,如何让Linux服务器提示input用户名/密码? 这会做一些额外的或不同的命令行选项的SSH,还是我需要使用别的东西?

我期待着在Windows桌面机上运行一些像tunellier的东西。 因此,我会告诉Windows桌面应用程序连接到它运行的Windows机器上的本地端口。 这个本地端口将通过tunellier隧道到Linux服务器。 Linux服务器将转而通过第三方服务器。

如果你想要authentication,那么你应该放弃-g选项来使隧道可用于networking。 然后要求每个需要访问隧道的人到远程系统build立一个连接到你的SSH服务器的隧道。

从另一台机器连接到隧道时,如何让Linux服务器提示input用户名/密码?

SSH内置的任何东西都不会在telnet会话的顶部自动添加validation步骤。 正如我上面所build议的,简单的解决scheme是只允许访问隧道如果用户可以validation到SSH服务器。 客户端和SSH服务器之间的VPN可能会得到类似的结果。

我不确定这个通道提供的是什么性质,但是你可以在SSH服务器上设置一个帐号。 然后configuration此帐户自动运行telnet连接到此隧道连接。

所以你可能会做一些像创build一个帐户tunnelaccess然后添加这样的东西到你的sshd_config。 所以每当用户以tunnelaccesslogin时,连接到远程隧道的命令将立即发生。

  Match User username AllowTCPForwarding no X11Forwarding no ForceCommand connect tunnel # replace with tool to connect to tunnel