我在网站上有一个管理区域,我想限制对该区域的访问。我考虑创建一个虚拟主机并绑定到端口 9090。只有本地主机才能访问此端口。
完成上述操作后,是否有办法让任何具有服务器 ssh 访问权限的用户通过使用 ssh 隧道、SOCKS 或其他可以完成工作的方式访问此管理区域?
答案1
是的,连接到主机后,您可以通过 SSH 访问该区域。您还可以从本地主机本身访问该区域,这意味着服务器上的每个用户都可以访问(除非有其他限制)。
如果这对你来说没问题,只需启动 putty(windows ssh 客户端)并修改连接 > SSH > 隧道。 在下面源端口输入“远程”端口(在本例中为 9090)。在目的地你输入(例如)本地主机:9090。然后您可以通过输入以下内容访问该区域http://localhost:9090/区域名称/。如果 9090 已在本地绑定,则只需在您这边使用不同的端口。
答案2
对于类似的设置我使用以下内容:
ssh -X -N -R 8888:localhost:22 someuser@public_server_ip_or_domain
如果你在管理服务器上执行此命令,它将在公共服务器的 8888 端口和管理服务器的 22 端口之间创建一个 ssh 隧道。然后你就可以使用以下 ssh 命令访问私有服务器:
ssh -p 8888 user_of_admin_site@public_server
请注意,根据我的经验,隧道会在一段时间后继续关闭,也许你可以尝试这。
请注意,要使此隧道正常工作,您需要在 public_server 的 /etc/sshd_config 文件中添加以下选项
GatewayPorts yes