从一台服务器到另一台服务器的cp?


34

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

我做了

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

这有可能吗?我该如何解决?


您能否发布以下命令的输出-scp -r -v usrname@server1.com:〜/ data / * usrname@server2.com:〜/ data /
实用

Answers:


55

当两台服务器之间没有连接时,我经常使用的东西

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

资源

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

假设您对两者都有良好的连接,则它不会太慢。


此外,如果您需要在两台服务器上使用特殊的端口:superuser.com/questions/686394/...

-r如果要复制目录,请不要忘记添加标志。
泰勒·埃德米斯顿

16

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

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

也允许在两个远程主机之间复制。

你应该做的(一次)什么是sshusername@server1.com,并从那里sshusername@server2.com。是的,回答您将收到的真实性问题,以消除主机密钥验证消息,同时执行scp

您可能必须使用以下命令启用转发代理:

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

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


我只是sshserver1.comserver2.com,并且确实回答了问题并成功。然后,我返回本地计算机,再次执行此操作,并得到server2.com的密码提示。但是它在以下方面失败了:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs赌博

1
@SibbsGambling我认为这取决于转发您的私钥。您可以在不提供密码的情况下登录两个服务器吗?你可以从登录server1server2不需要提供密码。您可能需要设置“ ForwardAgent yes”。
Anthon

1

首先,您需要检查i是否可以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复制目录。



-2

您可以使用以下命令将文件从一台服务器复制到另一台服务器:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.