通过中间机器挂载远程文件系统(sshfs)

5

情况:

  • 我正在从具有根访问权限的machine1上工作。从machine1,我可以通过ssh访问machine2(其中我是一个没有权限的用户)。
  • 机器3(同样是没有权限的用户)不能直接从machine1访问。我需要使用从machine2machine3的ssh连接。
  • 简而言之: machine1可以ssh登录machine2,但不能登录machine3machine2可以ssh登录machine3

我的要求:

  • 我想要使用sshfs在machine1上挂载在machine3上位于本地(自己的)目录。

复杂情况:

  • machine2上没有安装sshfs。

该如何实现?

2个回答

9
您可以使用ssh将22端口从machine3通过machine2转发到machine1,例如:
user1@machine1:$ ssh -L 2222:machine3:22 user2@machine2

接下来在机器1上配置sshfs使用localhost:2222端口(在第二个终端选项卡中):

user1@machine1:$ sshfs user3@localhost:/some/machine3/dir /some/local/dir -p 2222

@Tomek Rękawek:不错。 - Stefan Steiger
SSH隧道。美丽。 - Piyush Katariya

1
理论上,通过sshfs将机器3挂载到机器2上,然后在机器1中挂载机器2的sshfs目录。
作为非特权用户,您只能在自己的主目录中创建文件夹。
因此,理论上这应该可以工作(但速度会很慢):
机器2:
mkdir /home/<username>/sshfs
sshfs <machine3_username>@machine3:/ /home/<username>/sshfs

机器1:
mkdir -p /mnt/sshfs
sshfs <machine2_username>@machine2:/home/<username>/sshfs /mnt/sshfs

我忘了说在machine2上没有安装sshfs。 - Miguel
@Miguel:那么Tomek Rękawek的答案应该有效。如果您使用私钥-公钥而不是密码进行ssh,则可能需要将id_rsa.pub和private复制到machine1并在那里创建用户帐户。 - Stefan Steiger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接