对于在两台Linux机器之间传输文件,我总是觉得使用图形文件管理器(如Nautilus )更舒服,它提供了通过SSH连接远程计算机的选项。然而,今天我需要将文件传输到一台我无法直接访问的机器上--我需要先将SSH传输到某个服务器,然后再对我的最终目的地执行另一个SSH。这里是否还有一种方式来进行GUI友好的文件传输,还是这次我应该回到老的命令行scp?
发布于 2019-01-21 20:34:50
假设中间主机允许端口转发,您可以使用命令行完成一半的工作,并像往常一样以图形方式完成。
sshfs -o ssh_command='ssh -J firstuser@firsthost' finaluser@finalhost:directory localdirectory这将指示sshfs使用一个额外的-J选项运行其ssh后端(最终运行sftp子系统),该选项相当于ProxyJump配置选项,该选项本身将透明地将SSH连接转发到目的地。
这相当于在$HOME/.ssh/config中添加:
Host finalhost
ProxyJump firstuser@firsthost只需运行sshfs finaluser@finalhost:directory localdirectory,否则您也可以将上述两行放在一个文件中,并在此文件中使用sshfs的-F选项。
现在,您的目录localdirectory可以使用Nautilus或任何其他工具,GUI与否(但通常只限于运行sshfs的用户,就像往常一样)。
很有可能在$HOME/.ssh/config中有此选项将允许您的GUI工具像往常一样透明地挂载目录,因此不再需要CLI。我不能测试这个。
https://unix.stackexchange.com/questions/495845
复制相似问题