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

копировать между удаленным сервером с локальной аутентификацией

Когда мне нужно скопировать файлы между двумя удаленными серверами, я обычно

scp -3 user@server1:path user@server2:path

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

Знаете ли вы, как добиться того, чтобы "прямая передача" соответствовала обычным scp (т.е. нет -3), при делегировании аутентификации моей машине (например, как -3)?

.. может быть с некоторыми scp альтернатива?

Ближайшее предложение, которое я могу придумать, - использовать ssh-agent

  1. Запустите агента, если у вас его еще нет: ssh-agent bash
  2. Загрузите ключ: ssh-add
  3. ssh на один хост и заставить его инициировать копирование на / с другого: scp user@server1:path user@server2:path

Вместо того, чтобы использовать scp без -3 флаг, вы можете явно ssh к одному хосту и начать scp, тогда вы должны решить, будете ли вы ssh к server1 или server2. С помощью команды, которую я дал выше, scp выберет для вас один.

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

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

Почему вы не можете использовать аутентификацию с открытым ключом, ForwardAgent да в .ssh / config и просто scp user @ server1: path user @ server2: path? Я пробовал, и у меня это работает.