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

为了在具有相同硬件的机器之间获得相同的设置,我将驱动器从一个克隆到另一个,然后执行ip和hostnameconfiguration来区分两台Linux机器。 似乎一切正常,除了scp。 (NFS甚至ssh之间的机器工作正常)

看看scp -v的结果,似乎是正确的authentication,但它然后复制0字节。 有没有什么办法解决这一问题? 会为机器生成新的ssh密钥? 如果是这样,我该怎么做? (机器级别键,而不是用户级别键)

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

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

如果您位于OSX上,则位置实际上位于/ etc / ssh_host_dsa_key中。 另外,如果您愿意,也可以用rsa代替dsa。

您可能在/ etc / hosts中有一个条目,使克隆机器认为它是原来的。

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

我怀疑目标有一些问题,如只读文件系统,损坏的文件系统,没有SFTP,没有目录等

但无论如何,我build议你绕过SCP和使用rsync,它比SCP更聪明。

 rsync -avx file_or_dir destination_host:somedir/ 

它会复制文件,目录,recursion,与简历和所有内部的SSH连接,就像SCP。 当然你必须在两边安装rsync。

选项“avx”是:

  • 一个 – >复制所有文件/目录/设备/等与时间和所有者和权限
  • v – > verbose,显示正在复制的内容(使用-P显示副本的进度)
  • x – >只有一个文件系统。 它总是比较安全的,以防万一你有其他的挂载点