Rsync через туннель ssh
Я хочу rsync к кластеру node, к которому я обычно подключаюсь, проходя через другую систему:
Предположим, что сначала подключаюсь к
ssh [email protected]
и оттуда до
ssh [email protected]
Теперь я хочу rsync с моей рабочей станции на clusternode. Я делаю следующее:
-
Я открываю туннель ssh
ssh -L8000:clusternode:8000 [email protected]
-
I rsync с моей рабочей станции на clusternode
rsync -e "ssh -p8000" source [email protected]:destination
и он не работает, я получаю
ssh_exchange_identification: Connection closed by remote host
Почему это не работает? Что мне делать?
Я нашел здесь много информации:
http://toddharris.net/blog/2005/10/23/rsyncing-through-an-ssh-tunnel/
Я думаю, чтобы понять, что моя проблема - это вторая аутентификация между мостом и пунктом назначения, поэтому я изменил метод 2, который также не очень изящный, но он работает. Я хотел бы попробовать метод 3, но я не знаю, как настроить демон rsync
Ответы
Ответ 1
Вот что сработало для меня.
Я запускаю команду в фоновом режиме для туннелирования на удаленном хосте:
ssh -N -L 2222:remote.example.com:22 bridge.example.com&
то я rsync на localhost следующим образом:
rsync -auve "ssh -p 2222" . [email protected]:/some/path
Ответ 2
Попробуйте использовать один слой:
rsync -av -e "ssh -A [email protected] ssh" ./src [email protected]:/dst
Ответ 3
Вы должны подключиться к порту 22 кластерного кода, поэтому туннель должен выглядеть как
ssh -L localhost:8000:clusternode:22 [email protected]