为了在两台 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。我无法测试这个。