Hvordan synkronisere filer/kataloger ved hjelp av Rsync med ikke-standard SSH-port


I dag skal vi diskutere hvordan du synkroniserer filer ved hjelp av rsync med ikke-standard SSH-port. Du lurer kanskje på hvorfor vi trenger å bruke ikke-standard SSH-port? Det er på grunn av sikkerhetsmessige årsaker. Alle vet at 22 er SSH-standardporten.

Så det er obligatorisk å endre SSH-standardportnummeret til noe annet som er veldig vanskelig å gjette. I slike tilfeller, hvordan vil du synkronisere filene/mappene dine med den eksterne serveren? Ingen grunn til bekymring, det er ikke så vanskelig. Her vil vi se hvordan du synkroniserer filer og mapper ved hjelp av rsync med ikke-standard SSH-port.

Som du kanskje vet, er rsync, også kjent som Remote Sync, et raskt, allsidig og kraftig verktøy som kan brukes til å kopiere og synkronisere filer/kataloger fra lokal til lokale, eller lokale til eksterne verter. For mer informasjon om rsync, sjekk man-sider:

man rsync

Eller se vår forrige guide fra lenken nedenfor.

  1. Rsync: 10 praktiske eksempler på Rsync-kommandoer i Linux

Endre SSH-port til ikke-standard port

Som vi alle vet, bruker rsync standard SSH-port 22 for å synkronisere filer over lokale til eksterne verter og omvendt. Vi bør endre den eksterne serverens SSH-port for å stramme sikkerheten.

For å gjøre dette, åpne og rediger SSH-konfigurasjonsfilen /etc/ssh/sshd_config:

vi /etc/ssh/sshd_config 

Finn følgende linje. Fjern kommentarer og endre portnummeret du ønsker. Jeg anbefaler deg å velge et hvilket som helst tall som er veldig vanskelig å gjette.

Sørg for at du bruker et unikt nummer som ikke brukes av eksisterende tjenester. Sjekk denne netstat-artikkelen for å finne ut hvilke tjenester som kjører på hvilke TCP/UDP-porter.

For eksempel, her bruker jeg portnummer 1431.

[...]
Port 1431
[...]

Lagre og lukk filen.

I RPM-baserte systemer som RHEL, CentOS og Scientific Linux 7, må du tillate den nye porten gjennom brannmuren eller ruteren.

firewall-cmd --add-port 1431/tcp
firewall-cmd --add-port 1431/tcp --permanent

På RHEL/CentOS/Scientific Linux 6 og nyere bør du også oppdatere selinux-tillatelser for å tillate porten.

iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT
semanage port -a -t ssh_port_t -p tcp 1431

Til slutt, start SSH-tjenesten på nytt for å tre i kraft endringene.

systemctl restart sshd        [On SystemD]
OR
service sshd restart          [On SysVinit]

La oss nå se hvordan du synkroniserer filer ved hjelp av rsync med ikke-standard port.

Hvordan synkronisere med ikke-standard SSH-port

Kjør følgende kommando fra terminalen for å synkronisere filer/mapper ved å bruke Rsync med ikke-standard ssh-port.

Syntaks:
rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder

For formålet med denne opplæringen vil jeg bruke to systemer.

Eksternt systemdetaljer:

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1

Lokale systemdetaljer:

Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

La oss synkronisere innholdet i den eksterne serverens /backup1-mappe til mitt lokale systems mappe /home/sk/backup2/.

sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
Eksempelutgang
[email 's password: 
receiving incremental file list
backup1/
backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
        752,876 100%   13.30MB/s    0:00:00 (xfr#1, to-chk=2/4)
backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
      9,676,510 100%   12.50MB/s    0:00:00 (xfr#2, to-chk=1/4)
backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
     56,563,302 100%   11.26MB/s    0:00:04 (xfr#3, to-chk=0/4)

sent 85 bytes  received 66,979,455 bytes  7,050,477.89 bytes/sec
total size is 66,992,688  speedup is 1.00.

La oss sjekke innholdet i mappen /backup1/ på den eksterne serveren.

sudo ls -l /backup1/
Eksempelutgang
total 65428
-rw-r--r-- 1 root root  9676510 Dec  9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
-rw-r--r-- 1 root root   752876 Dec  9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
-rw-r--r-- 1 root root 56563302 Dec  9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

La oss nå sjekke innholdet i mappen /backup2/ i det lokale systemet.

ls /home/sk/backup2/
Eksempelutgang
backup1

Som du ser i utdataene ovenfor, har innholdet i /backup1/ blitt kopiert til mitt lokale systems /home/sk/backup2/-katalog.

Bekreft innholdet i /backup1/ mappen:

ls /home/sk/backup2/backup1/
Eksempelutgang
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb            
linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

Se, både eksterne og lokale systemmapper har samme filer.

Konklusjon

Synkronisering av filer/mapper ved hjelp av Rsync med SSH er ikke bare enkel, men også rask og sikker metode. Hvis du er bak en brannmur som begrenser port 22, ingen bekymringer. Bare endre standardporten og synkroniser filer som en proff.