如何修复克隆 Linux 机器之间的 scp 文件传输?

如何修复克隆 Linux 机器之间的 scp 文件传输?

为了在具有相同硬件的机器之间获得相同的设置,我将驱动器从一台克隆到另一台,然后进行 ip 和主机名配置以区分两台 Linux 机器。除了 scp 之外,一切似乎都运行良好。(机器之间的 NFS 甚至 ssh 都运行良好)

查看 scp -v 的结果,它似乎正确验证,但随后复制了 0 个字节。有什么办法可以解决这个问题吗?为机器生成新的 ssh 密钥是否可行?如果可以,我该怎么做?(机器级密钥,而不是用户级密钥)

答案1

您可以使用以下命令重新生成新的主机 ssh 密钥:

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

如果您使用的是 OSX,则位置实际上是 /etc/ssh_host_dsa_key。此外,如果您愿意,也可以用 rsa 替换 dsa。

答案2

你可能有一个条目/etc/hosts这使得克隆的机器认为它是原始机器。

如果这些是虚拟机,确保他们的虚拟网卡有不同的MAC地址。

答案3

我怀疑目的地存在一些问题,例如只读文件系统、损坏的文件系统、没有 sftp、没有目录等

但无论如何,我建议您绕过 scp 并使用 rsync,它比 scp 智能得多。

rsync -avx file_or_dir destination_host:somedir/

它将复制文件、目录、递归、恢复以及 ssh 连接内的所有内容,就像 scp 一样。当然,你必须在双方都安装 rsync。

选项“avx”包括:

  • a -> 复制所有文件/目录/设备/等,包括时间、所有者和权限
  • v -> 详细,显示正在复制的内容(使用 -P 显示复制的进度)
  • x -> 只有一个文件系统。包含这个总是更安全的,以防您有其他挂载点

相关内容