![有没有办法将 sshfs 用于机器“两次跳转”?](https://linux22.com/image/146710/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%B0%86%20sshfs%20%E7%94%A8%E4%BA%8E%E6%9C%BA%E5%99%A8%E2%80%9C%E4%B8%A4%E6%AC%A1%E8%B7%B3%E8%BD%AC%E2%80%9D%EF%BC%9F.png)
对于在两台 Linux 计算机之间传输文件,我总是觉得使用图形文件管理器(例如 Nautilus)更舒服,它提供了通过 SSH 连接到远程计算机的选项。然而今天我需要将文件传输到一台无法直接访问的机器上——我需要首先通过 SSH 连接到某个服务器,然后再通过 SSH 连接到我的最终目的地。是否还有办法在这里进行 GUI 友好的文件传输,或者这次我应该回退到旧的命令行 scp ?
答案1
假设中间主机允许端口转发,您可以使用命令行完成一半的工作,并像往常一样以图形方式完成:
sshfs -o ssh_command='ssh -J firstuser@firsthost' finaluser@finalhost:directory localdirectory
或者实际上,由于(与for-o ProxyJump
相同) 直接被(然后将其提供给后端)接受,因此可以将其重写为:-J
ssh
sshfs
ssh
sshfs -o ProxyJump=firstuser@firsthost finaluser@finalhost:directory localdirectory
这将指示 sshfs 运行其 ssh 后端(本身最终运行 sftp 子系统),并附加一个ProxyJump
选项,它本身会将 SSH 连接透明地转发到目标。
这相当于添加代替$HOME/.ssh/config
:
Host finalhost
ProxyJump firstuser@firsthost
然后运行sshfs finaluser@finalhost:directory localdirectory
,或者您也可以将以上两行放入一个文件中,并使用此文件-F
的选项。sshfs
现在您的目录localdirectory
可以与 Nautilus 或任何其他工具(无论是否有 GUI)一起使用(但通常仅限于像往常一样运行的用户sshfs
)。
很有可能,有了这个选项,$HOME/.ssh/config
您的 GUI 工具就可以像往常一样透明地工作来挂载目录,从而不再需要 CLI。我无法测试这个。