Я пытаюсь обернуть голову, используя Rsync. Я в основном хочу настроить "сервер", который будет выступать в качестве хранилища для файлов, которые я хочу синхронизировать со многими другими машинами. Я только начинаю этот путь, и я запутался в использовании rsync поверх ssh с использованием ключей rsa. Я нашел много учебников о том, как это сделать, но мой вопрос заключается в следующем. Нужен ли отдельный ключ rsa для каждого "клиента" и есть ли он на "сервере"? Или я могу использовать один ключ для всех клиентов? У меня могут быть сотни клиентов (надежда, надежда). Я понял, как заставить это работать вручную теперь для автоматической части. Любые идеи приветствуются.
2 ответа
Вы можете настроить общий доступ к файлам на сервере; Общий ресурс Windows для клиентов Windows и общий ресурс NFS для клиентов Linux.
Если вы должны использовать rsync, вы можете перейти от сервера к клиентам. Чтобы предоставить разрешение для сервера на клиенте, запустите это с сервера:
ssh-copy-id username@client1
Затем вы бы выдавали синхронизацию каталога следующим образом, предполагая одно и то же имя пользователя для каждого:
for client in client1 client2 client3 client4 client5; do
rsync -avz /full/path/ username@$client:/full/path/
done
Если вы говорите о сотнях клиентов, то ИМХО лучше использовать какое-то программное обеспечение для синхронизации. Это может быть git, fossil- scm или syncthing в режиме master. С последним вам не нужно возиться с клиентскими SSL-сертификатами вообще, и он работает практически на любой платформе. git
и fossil
могут обслуживаться по HTTPS, поэтому не нужно управлять большим количеством сертификатов. Используя такой подход, вы избавитесь от лишней работы по управлению доступом к вашему серверу. rsync
действительно хорош, но IMHO не в вашем сценарии, поскольку вам нужно будет управлять безопасным SSH-сервером и связываться с кучей сертификатов.