有没有办法将 sshfs 用于“两次跳跃”的机器?

hug*_*omg 6 ssh sshfs

为了在两台 Linux 机器之间传输文件,我总是觉得使用图形文件管理器更舒服,比如 Nautilus,它提供了通过 SSH 连接到远程机器的选项。但是今天我需要将文件传输到我无法直接访问的机器上——我需要先通过 SSH 连接到某个服务器,然后再通过 SSH 连接到我的最终目的地。有没有办法在这里进行 GUI 友好的文件传输,还是我这次应该回到旧的命令行 scp?

A.B*_*A.B 11

假设中间主机允许端口转发,您可以使用命令行完成一半的工作,并像往常一样以图形方式完成。

sshfs -o ssh_command='ssh -J firstuser@firsthost' finaluser@finalhost:directory localdirectory
Run Code Online (Sandbox Code Playgroud)

这将指示 sshfs 运行其 ssh 后端(它自己最终运行 sftp 子系统),并带有一个附加-J选项,相当于ProxyJump配置选项,它本身将透明地将 SSH 连接转发到目的地。

这相当于添加到$HOME/.ssh/config

Host finalhost
    ProxyJump firstuser@firsthost
Run Code Online (Sandbox Code Playgroud)

并运行sshfs finaluser@finalhost:directory localdirectory,否则您也可以将上述两行放在一个文件中,并在该文件中使用-F选项sshfs

现在您的目录localdirectory可以与 Nautilus 或任何其他工具一起使用,无论是否使用 GUI(但通常仅限于运行的用户sshfs,像往常一样)。

很可能有这个选项$HOME/.ssh/config将允许你的 GUI 工具像往常一样透明地工作来挂载目录,从而不再需要 CLI。我无法测试这个。