Назад | Перейти на главную страницу

Как исправить передачу файлов scp между клонированными машинами Linux?

Чтобы получить идентичную настройку между машинами с одинаковым оборудованием, я клонировал диск с одного на другой, затем выполнил конфигурацию IP и имени хоста, чтобы различать две машины Linux. Вроде все работает нормально, кроме scp. (NFS и даже ssh между машинами работают нормально)

Глядя на результаты scp -v, кажется, что он правильно аутентифицируется, но затем копирует 0 байтов. Есть ли способ исправить это? Будет ли работать создание новых ключей ssh ​​для машины? Если да, то как мне это сделать? (Клавиши машинного уровня, а не клавиши пользовательского уровня)

Вы можете повторно сгенерировать новые ключи ssh хоста, используя следующую команду:

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

Если вы используете OSX, то на самом деле это / etc / ssh_host_dsa_key. Кроме того, вы можете заменить dsa на rsa, если хотите.

Вероятно, у вас есть запись в / etc / hosts это заставляет клонированную машину думать, что она оригинальная.

И если это виртуальные машиныубедитесь, что их виртуальные сетевые карты имеют разные MAC-адреса.

Я подозреваю, что у места назначения есть какие-то проблемы, такие как файловая система только для чтения, поврежденная файловая система, отсутствие sftp, отсутствие каталога и т. д.

но в любом случае я рекомендую вам обойти scp и использовать rsync, он намного умнее, чем scp.

rsync -avx file_or_dir destination_host:somedir/

он будет копировать файлы, каталоги, рекурсивно, с возобновлением и все внутри ssh-соединения, точно так же, как scp. конечно, у вас должен быть установлен rsync с обеих сторон.

варианты "avx":

  • a -> скопируйте все файлы / каталоги / устройства / и т. д. с указанием времени, владельца и разрешения
  • v -> подробный, показать, что копируется (используйте -P, чтобы показать прогресс копирования)
  • x -> только одна файловая система. всегда безопаснее включать это, на всякий случай, если у вас есть другие точки монтирования