我正在尝试绕过本地计算机,将文件从一台服务器直接复制到另一台服务器。
我做到了
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