scp从一台服务器到另一台服务器?

scp从一台服务器到另一台服务器?

我正在尝试绕过本地计算机,将文件从一台服务器直接复制到另一台服务器。

我做到了

scp -r [email protected]:~/data/* [email protected]:~/data/
Password: 
Host key verification failed.
lost connection

这可能吗?我该如何修复它?

答案1

当两台服务器之间无法连接时我经常使用的东西

scp -3 user@server1:/path/to/file user@server2:/path/to/file

来源

-3 两个远程主机之间的副本通过本地主机传输。如果没有此选项,数据将直接在两个远程主机之间复制。请注意,此选项会禁用进度表。

假设您与两者都有良好的连接,那么速度不会太慢。

答案2

是的,这是可能的,但前提是server1.com可以server2.com使用该名称进行访问。如果没有,您可能会收到一条消息:ssh: connect to host server2 port 22: Connection refused

man页面scp明确指出它在网络上的主机之间进行复制,并且:

还允许两个远程主机之间进行复制。

你应该做的(一次)是ssh[email protected]那里ssh[email protected]。用“是”回答您将遇到的真实性问题,以在执行以下操作时消除主机密钥验证消息scp

您可能必须通过以下方式启用转发代理:

scp -o "ForwardAgent yes" -r [email protected]:~/data/* [email protected]:~/data/

但请确保您意识到其中的危险(man ssh_config

答案3

首先,您需要检查是否能够 ssh 到 server2,没有任何错误,如果出现相同的错误,请打开文件~/.ssh/known_hosts并搜索 server2 密钥并将其删除。

然后检查是否能够通过主机名 ping 服务器

如果没有,请按如下所述编辑服务器主机文件

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

完成此操作后,cd 到要复制到服务器2的文件的位置

--- scp file_name user@server2:/path_to_the_directory > 您可以使用 IP 而不是主机名-R来复制目录。

答案4

对于 Linux,使用以下命令将文件/文件夹从一台服务器无缝复制到另一台服务器。即使您与服务器之间断开连接,这也可以确保作业完成。

nohup bash -c 'scp -r [user_source@Soure_Server_ip]:/[path_to_folder] [user_dest@destination_server_ip]:/[path_to_destination_folder]'>/dev/null 2>&1          

相关内容