nautilus传输文件在两个远程SSH服务器之间

分享于 

5分钟阅读

ubuntu

  繁體 雙語

问题:

是否有一种简单的方式在两个 ssh/sftp服务器之间传输文件? 完美的解决方案是 FileZilla,但它只允许你在本地和远程之间建立连接,但不能在远程和远程之间。

从理论上我可以打开两个 Nautilus Windows 并连接一些 ssh://server1/path/to/folderssh://server2/path/to/folder,然后将文件从一个到另一个。 我的经验是这是非常不稳定的。 在 换句话说,10MB 中传输文件不存在问题,但是转移 换句话说,10GB 通常会导致Nautilus挂起并存在。 ps -e | grep nautilus > kill -9 <pid>。我也用Nemo和Caja测试同样的东西。 虽然彗星比它的他人更稳定,但它仍然不完美,同时也会失去时间。 to非常稳定,从不真正的失败,但是由于提到的事实,它只能连接到单一SSH服务器。

当然,我也可以用 sshfs 安装一个文件夹,但这是一种不方便的解决方案。 太多的工作要做,才能得到简单的传送。

是否有任何应用程序可以处理两个SSH服务器之间的传输? 如果连接中断的话,完美的将会像,一样重新获取工作。


回答 1:

你的版本仍然支持,那么你的scp 命令将提供 -3 switch,通过 localhost 将文件从 remote2 copying到


me@local:~> scp -3 user1@remote1:/path/to/file1 user2@remote2:/path/to/file2



你还可以省略 -3 switch,但是在 user2@remote2的文件 authorized_keys 中,你将需要 user1@remote1的public 密钥( id_rsa.pub ):


me@local:~> scp user1@remote1:/path/to/file1 user2@remote2:/path/to/file2



然后 scp 在引擎罩下面先做一个 ssh user1@remote1scp/path/to/file1 user2@remote2:/path/to/file2 这就是为什么凭据必须与 -3 解决方案的分布不同。

换句话说:

  • scp -3 remote1:file1 remote2:file2 将文件从 remote1传送到 localhost,然后返回到 remote2。 数据以 remote1 → localhost → remote2。 本地localhost是这个场景中的方,因此是 -3。 为此,你需要在两个 remote1 localhost and和 remote2 上的凭证,因为localhost连接到两个。

  • scp remote1:file1 remote2:file2 将文件直接从 remote1 copies remote1 remote2到以它们连接到的速度。 本地主机 ( 除了发出命令) involved。 数据以 remote1 → remote2。 如果你要使用 localhost,你需要在 remote2上添加证书,但你需要 remote1 connects connects connects connects connects connects connects connects connects。

如果可能的话,我会选择第二种方法。 就像一些评论已经说明: 通常 remote1 remote1和remote2之间的网络电缆比它们之间的电缆要厚得多,而且 localhost localhost。


回答 2:

在大多数情况下,两个ssh服务器可以相互访问( 或者至少有一个能到达另一个),在大多数情况下,工作站的因特网比任何服务器都要差得多。

如果是这样,订购一台服务器到另一台服务器的方式是。


ssh server1 nohup scp somefile server2:somefile



在server1上检查 nohup.out 以获取错误。

如果服务器可以到达性是另一种方式,则可以反转哪个机器是主服务器:


ssh server2 nohup scp server1:somefile somefile




回答 3:

也许你可以使用几个GUI前端中的一个来实现:

有用于命令rsync的GUI应用程序

或者你可以直接从 命令行 使用rsync来连接到远程服务器:

"如何在两个遥控器之间打开文件"

在一台服务器上,通常使用ssh登录,然后从服务器使用rsync推送或者拉文件到其他远程服务器( 通常要比通过某些 3rd 计算机传送文件快)。

rsync足够聪明,可以做一些工作,如果有任何错误,中断过程,以后退出。


回答 4:

你需要使用SCP协议。 scp file you want to transfer login@address_of_second_server:/path_where_you_want_to_save



文件  Server  files  SSH  Transfer  Nautilus