Pereiti prie pagrindinio turinio

Failų perkėlimas per SSH naudojant Rsync

Atnaujinta šią savaitę

Šioje trumpoje pamokoje aprašysime instrukcijas, kaip galima supaprastinti failų perkėlimą tarp serverių naudojant Rsync su viešu SSH raktu.

Rsync - įrankis leidžiantis atlikti failų perkėlimą, sinchronizavimą tarp serverių.

1. Serveryje iš kurio planuojamas failų perkėlimas sugeneruojame viešą raktą be slaptažodžio:

ssh-keygen -f ~/.ssh/id_rsa -q -P ""
cat ~/.ssh/id_rsa.pub


Rezultatas:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoDJN1oHcQT0CZxdj4zm8A4Q6cmIhFWswGrl1tvo+AumDeZgKRFuh9R4hFlvu7Il4PQTlpR0OWGr1dFcxHsHXGaySRtGqfsdI5vBh1HbFZcc2nzi++v6IHaCW6QdDvs3h2P5FIOewRjehvN5b8HvBY9JZkDbp+UgjVI+wZANZCrgTBhVTUUNt9uIkidpAtFFl899S1rP3cHuU05V0ts9cyol+LZLVUtNysxVn8a8EILIdt5AoKuYPQqML3adUecoN4r06OLH4O3bm4qAlUN3in8RMCXK1EJXs4AC3kC+EBPnUSLo7ig6lbjpgGc8Eogor8gLgTSotuxHcKiZVY0WlwQ== root@serveris


2. Šį sugeneruotą kodą nukopijuojame serveryje į kurį planuojamas failų perkėlimas " ~/.ssh/authorized_keys" failą.

Jeigu ".ssh" katalogas serveryje į kurį planuojamas failų perkėlimas neegzistuoja, jį sukuriame:

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys


Rezultatas: Viešasis raktas buvo sugeneruotas ir patalpintas antrajame serveryje. Todėl dabar galime paprastai vykdyti failų perkėlimą/sinchronizavimą tarp serverių.

Perkėlimo pavyzdys:

Šiame pavyzdyje perkėlimas bus atliekamas iš serverio IP adreso (1.1.1.1) į serverį IP adresu (2.2.2.2).

Prisijungiame prie (1.1.1.1) serverio, bei įvykdome komandą siekiant perkelti "/root/testinis_failas.txt" į serverį (2.2.2.2):

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/testinis_failas.txt 2.2.2.2:/root/


Jeigu yra naudojamas kitas vartotojas nei "root", svarbu įsitikinti, jog sugeneruotas raktas būtų patalpintas būtent reikalingo vartotojo "~/.ssh/authorized_keys" faile. Naudojant kitą vartotoją komandos sintaksė būtų ši:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/testinis_failas.txt [email protected]:/
Ar gavote atsakymą į savo klausimą?