如何在我无法访问的客户端计算机上挂载无法公开访问的服务器的远程 sshfs 目录?

如何在我无法访问的客户端计算机上挂载无法公开访问的服务器的远程 sshfs 目录?

这是一个扩展问题通过@安德烈

如何通过中间机挂载远程SSHFS?隧道?

我的情况与我想要安装远程目录的情况相同,但不同之处在于两台机器AB没有在互联网上公开暴露。A是我当地的工作站。

所以我既不能从 ssh A -> B,也不能B -> A.

B -> C我经常做的是从C租用的虚拟服务器(VPS)建立反向连接。执行此连接(并在连接丢失时重新连接)的脚本通过@reboot的键启动cron

user@pcB $ ssh -R 2048:localhost:22 -p<port> user@serverC

然后,A -> B我走中间路线A -> C -> B

user@pcA $ ssh serverC
user@serverC $ ssh -p 2048 user@localhost
user@pcB $ # okay, logged in.

我正在寻找一种将目录挂载pcB:/home/user到 上的方法pcA

如何使用 ssh 通过另一台电脑连接到另一台电脑类似,但提供的解决方案在这种情况下不起作用:我的情况下的连接映射A -> C <- B不是A -> C -> B

答案1

这比我想象的要容易!

我们所要做的就是2048将 的端口绑定serverC到 的端口pcA。为简单起见,我使用相同的端口号2048

user@pcA $ ssh -L 2048:localhost:2048 user@serverC

需要保持该终端窗口打开。

pcB:/home/user然后,在本地安装目录pcA如下所示:

sshfs -o port=2048 user@localhost:/home/user/ /mnt/pcB

不错的副作用:这意味着您还可以使用高效的 X 服务器连接,例如freeNXvnc来检索pcB.只需连接到localhost:2048机器并使用正确的凭据(用户名/密码)即可pcB

如果您不想保持终端打开以进行连接,您可以使用:

ssh -NfL 2048:localhost:2048 user@serverC

请注意,这样做可能会违反您的雇主/组织的安全策略,因此请确保获得适当的权限。

相关内容