Zenon + ssh + rsa, ну и сразу + rsync
Раньше меня как то не трогало, что при обычной ssh аутентификации на сервере зенона нужно вводить пароль. Но тут столкнулся с проблемой, нужно синхронизировать локальную папку и папку на хостинге зенона, самая первая мысль пришедшая в голову rsync, она же была и принята за рабочую. Строго говоря, второй мысли как то и не возникает, помнится была утилитка unison, но так же помнится, автор прекратил ее поддерживать.
Итак, step by step. Процесс ssh аутентификации c помощью ключа много где описан, поэтому буду краток.
на клиенте:
ssh-keygen -t dsa
scp ~/.ssh/id_dsa.pub user@server:~/.ssh/authorized_keys
на сервере:
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chmod 750 $HOME
на клиенте:
ssh user@server
в голове:
Ура, заработало!!!
Ах, да. Совсем забыл написать зачем именно нужна аутентификация по ключу. Дело в том, что одновременно хитро-простая утилита rsync может работать поверх ssh, что нам и нужно. Но вот как в команде передать пароль, для того чтобы законектиться на сервер, я не знаю, вполне возможно его и нет. В любом случае организовать аутентификацию по ключу просто и не долго.
Rsync - замечательная утилитка обладающая множеством совершенно замечательных ключиков, совершенно замечательно описанных в man. Посмотрим как строка команды будет выглядеть на практике(в самом простом случае).
rsync -e ssh -uthvr /home/user/folder user@server:path/to/folder
Как-то так.
Однако, прежде чем пользовать эту команду, я бы на всякий случай воспользовался еще одним ключиком -n, он позволяет запустить все в тестовом режиме и посмотреть, что будет происходить.
Ну и в моем случае, эту синхронизацию нужно выполнять раз в час и самый удобный(для меня) вариант это cron
crontab -e
10 * * * * rsync -e ssh -uthvr /home/user/folder user@server:path/to/folder