通过 jumphost 的 SSHFS

m4p*_*85r 5 ssh fuse sshfs

我有3台电脑。A、B 和 C。

A 是我现在使用的那个。B 是一个 jumphost,我可以通过 SSH 从 A 使用ssh -t B_host ssh C_host.

我想做的是通过 SSHFS 命令将 C 的文件系统挂载到 A,但简要查看手册页没有显示任何链接命令。

这可能吗?

小智 9

如果需要,也可以通过以下方式直接在命令行上完成:

sshfs -o ssh_command="ssh -J B_host" C_host:/<path> <mountpoint> 
Run Code Online (Sandbox Code Playgroud)

感谢这个 Unix & Linux 答案提供的信息。然而,这个 ServerFault 问题目前是sshfs Jumphost的 Google 结果中排名最高的,因此也将信息复制到这里,希望可以为未来的搜索者节省一些时间。

  • `sshfs -o ProxyJump=B_host C_host:/&lt;path&gt; &lt;mountpoint&gt;` 会更直接。 (2认同)

Joh*_*ney 8

旧答案中提到的机制的更简单版本现已发布。仍然使用 ~/.ssh/config,这将通过更简单的语法完成相同的任务:

Host <host alias>
    User <host_username>
    HostName <host_name>
    ProxyJump [user@]<jump host>[:port]
Run Code Online (Sandbox Code Playgroud)


m4p*_*85r 6

在此处解决类似的基于 SFTP/SCP 的问题您必须按如下方式修改 SSH 配置文件(位于~/.ssh/config

    Host B
        HostName <B_host>
        User <B_user>
        ForwardAgent yes

    Host C
        User <C_user>
        HostName <C_host>
        ProxyCommand ssh B -W %h:%p
Run Code Online (Sandbox Code Playgroud)

然后当你从 A 运行以下命令时它“正常工作”:

 sshfs hostC:/<path to mount on C> <path to mount on A>
Run Code Online (Sandbox Code Playgroud)

杰出的!