Когда мне нужно скопировать файлы между двумя удаленными серверами, я обычно
scp -3 user@server1:path user@server2:path
к сожалению, поскольку он направляет трафик через мою машину, это очень медленно, когда файлы «большие», а серверы «расположены рядом» друг с другом ...
Знаете ли вы, как добиться того, чтобы "прямая передача" соответствовала обычным scp
(т.е. нет -3
), при делегировании аутентификации моей машине (например, как -3
)?
.. может быть с некоторыми scp
альтернатива?
Ближайшее предложение, которое я могу придумать, - использовать ssh-agent
ssh-agent bash
ssh-add
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? Я пробовал, и у меня это работает.