Like: ruby, ruby on rails, macosx, apple, textmate, linux, git, gity, ubuntu, gnome 2, Dub FX, Dropkick Merphys, android, google, The black keys, Prawn(rails), epub, vim,


Текст

мар 9, 2010
@ 4:56 pm
Постоянная ссылка

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