Chcę skonfigurować zadanie RSync, które łączy się za pośrednictwem SSH.
Mam komputer (backup @ myhost) i host zdalny (test @ remhost) i muszę wykonać kopię zapasową folderu ~ / coś z całą zawartością. Test użytkownika ssh ma dostęp tylko do odczytu dla wszystkich plików i folderów w folderze ~ /. Chcę użyć rsync, aby skopiować folder test @ remhost: ~ / coś do folderu backup @ myhost: ~ / bak.
W tym celu używam następującego polecenia za pośrednictwem BASH na Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
Po wciśnięciu Enter dostaję to:
test@remhost's password:
Wpisuję hasło i rsync działa.
Chcę wykonać powyższe polecenie, aby automatycznie wprowadzić hasło i przekazać je jako parametr lub wprowadzić je automatycznie i rozpocząć zadanie.
Próbowałem wykonać, rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
ale nadal prosi o hasło i jest denerwujące.
Nie chcę słyszeć o żadnym rodzaju kluczy (RSA, DSA ani żadnego innego). Chcę tylko prostego polecenia, które zaloguje mnie i wykona zadanie.
EDYCJA: Możliwym scenariuszem może być wyłączenie uwierzytelniania za pomocą klucza publicznego i nie można tego zmienić. Np. Jeśli korzystasz z OpenSSH, potrzebujesz uprawnień roota na serwerze, aby edytować plik sshd_config
i dodać PubkeyAuthentication yes
.
EDYCJA: Oto, co w końcu dla mnie zadziałało:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Należy pamiętać, że ta metoda nie jest uważana za bezpieczną, ponieważ wysyła hasło zwykłym tekstem i jest podatna na ataki typu man-the-the-middle. Zaleca się użycie klucza uwierzytelnienia dla większego bezpieczeństwa.