运行 OpenSuse 13.1,我可以通过 SFTP 访问服务器:
问题:朋友能否从另一台计算机通过隧道连接到我的计算机,以便他可以在我的计算机上使用我的 SFTP 客户端?这可能吗?
换句话说:我们遇到的情况是,我可以通过 SSH/SFTP 访问我的工作站到服务器。现在住在其他地方的朋友应该使用此访问权限,但只能在我的计算机上使用。请注意,不能 (!!) 从他的工作站直接访问服务器。
我们需要从他的计算机到我的计算机建立 SSH 访问权限,以便他可以通过 SSH 访问相关的服务器。
我该如何实现这一点?为什么我们不能在会话中从 #1 通过 SSH 连接到 #2 上的控制台,然后从机器 #2 通过 SSH 连接到控制台 3?这称为“跳跃式”
答案1
如果你的朋友可以 ssh 到你,那么你可以像这样建立隧道:
ssh -L 8022:<sftp-server-ip>:22 <your-workstation-ip>
通过激活这个 ssh 会话,您的朋友可以访问服务器,但localhost:8022
问题是他们需要能够 ssh 到您的工作站,而您需要在路由器上转发一个端口才能执行此操作。
答案2
您可以先通过 SSH 连接到您的服务器,为您的朋友创建一个可远程访问的隧道。例如:
ssh -g -L 10022:127.0.0.1:22 [your-server's-ip-address]
-g 开关使隧道可供远程主机使用。假设您的工作站上的端口 10022 已打开,则他可以使用以下命令连接到服务器:
ssh [your-workstation's-ip-address] -p 10022
请注意,这样的连接将混淆此连接的来源。此外,任何知道此隧道的人都可以使用它,除非您的本地防火墙限制对端口 10022 的访问(在本例中)。