这是一个扩展问题通过@安德烈
如何通过中间机挂载远程SSHFS?隧道?
我的情况与我想要安装远程目录的情况相同,但不同之处在于两台机器A
都B
没有在互联网上公开暴露。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 服务器连接,例如freeNX
或vnc
来检索pcB
.只需连接到localhost:2048
机器并使用正确的凭据(用户名/密码)即可pcB
!
如果您不想保持终端打开以进行连接,您可以使用:
ssh -NfL 2048:localhost:2048 user@serverC
请注意,这样做可能会违反您的雇主/组织的安全策略,因此请确保获得适当的权限。