как да направим сигурен rsync архив през ssh на отдалечена Linux машина
Темата с архивите найстина е много мелена. В Интернет има един куп програми които правят това. Аз обаче си обичам простите и надеждни неща като на първо място слагам rsync.
Rsync е софтуерно приложение и мрежов протокол за Unix-подобни системи, което синхронизира файлове и директории от едно място на друго, като същевременно минимизират трансферa на данни чрез използване на делта кодиране което дава много бърз метод за привеждане на отдалечени файлове в синхрон. rsync всъщност създава огледало на данните на отдалечено място без да копира цялата информация а само файловете които са търпели промяна.
Метода който аз използвам за архивиране е комбинация между rsync и една друга програма sshpass.
Sshpass е инструмент за интерактивно удостоверяване на парола чрез протокола SSH. Повечето потребители трябва да използват протокола SSH за по-сигурна публична ключ автентикация. Когато потребителя се логне той се намира в отдалечена конзола но когато иска само да изпълни отделна команда като например rsync, sshpass е много удобен.
Как всъщност комбинирам двете програми:
sudo apt-get install sshpass rsync |
sshpass -p yourpassword rsync -avz --delete -e ssh root@93.155.130.55:/ --exclude=/proc --exclude=/dev \ --exclude=/sys /backup/hosting |
Какво всъщност се случва.
sshpass добавя паролата “yourpassword” в ssh и с помоща на rsync създава архив от ип адрес 93.155.130.55 от главната директория /
архивът се копира на локалната машина в /backup/hosting а опцията –exclude= показва коя директия да не се архивира. В случая /proc /dev и /sys са напълно излишни. Тук всички се замислят -Добре имам архив но защо трябва да е от главната директория. Отговора е прост -В обатен вариант при гръмнал хард диск може да се въстанови цялата система на нов диск. Само трябва да се инсталира нова операционна система, после да се копира с rsync и накрая да се упгрейдне grub с командата upgrade-from-grub-legacy.
как да направим сигурен rsync архив през ssh на отдалечена Linux машина
Писането на парола в прав текст в командния ред се счита за кофти секюрити практика.
Всеки непривилегирован потребител на системата може да изпълни ps aux и да я вземе, придобивайки достъп до отсрещната система…..
Вариантите за заобикаляне на проблема са поне два:
1. прешернати ssh ключове
http://www.debian-administration.org/article/152/Password-less_logins_with_OpenSSH
2. опцията на rsync
–password-file=FILE read daemon-access password from FILE
За мен е идеално решение защото съм само аз на моята машина, благодаря !