Sådan synkroniseres filer/kataloger ved hjælp af Rsync med ikke-standard SSH-port


I dag vil vi diskutere, hvordan man synkroniserer filer ved hjælp af rsync med ikke-standard SSH-port. Du spekulerer måske på, hvorfor skal vi bruge ikke-standard SSH-port? Det er af sikkerhedsmæssige årsager. Alle ved, at 22 er SSH-standardporten.

Så det er obligatorisk at ændre dit SSH-standardportnummer til noget andet, som det er meget svært at gætte. I sådanne tilfælde, hvordan synkroniserer du dine filer/mapper med din fjernserver? Ingen bekymringer, det er ikke så svært. Her vil vi se, hvordan du synkroniserer filer og mapper ved hjælp af rsync med ikke-standard SSH-port.

Som du måske ved, er rsync, også kendt som Remote Sync, et hurtigt, alsidigt og kraftfuldt værktøj, der kan bruges til at kopiere og synkronisere filer/mapper fra lokale til lokale eller lokale til eksterne værter. For flere detaljer om rsync, se man-sider:

# man rsync

Eller se vores tidligere vejledning fra nedenstående link.

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

Skift SSH-port til ikke-standardport

Som vi alle ved, bruger rsync som standard SSH-port 22 som standard til at synkronisere filer over lokale til eksterne værter og omvendt. Vi bør ændre SSH-porten på vores eksterne server for at skærpe sikkerheden.

For at gøre dette skal du åbne og redigere SSH-konfigurationen/etc/ssh/sshd_config-filen:

# vi /etc/ssh/sshd_config 

Find følgende linje. Fjern kommentar og skift det portnummer, du vælger. Jeg anbefaler dig at vælge et hvilket som helst nummer, der er meget svært at gætte.

Sørg for, at du bruger et unikt nummer, som ikke bruges af eksisterende tjenester. Tjek denne netstat-artikel for at vide, hvilke tjenester der kører på hvilke TCP/UDP-porte.

For eksempel bruger jeg portnummer 1431 her.

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

Gem og luk filen.

I RPM-baserede systemer som RHEL, CentOS og Scientific Linux 7 skal du tillade den nye port gennem din firewall eller router.

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

På RHEL/CentOS/Scientific Linux 6 og nyere skal du også opdatere selinux-tilladelser for at tillade 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

Endelig genstart SSH-tjenesten for at træde i kraft ændringerne.

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

Lad os nu se, hvordan du synkroniserer filer ved hjælp af rsync med ikke-standardport.

Sådan Rsync med ikke-standard SSH Port

Kør følgende kommando fra terminalen for at synkronisere filer/mapper ved hjælp af Rsync med ikke-standard ssh-port.

# rsync -arvz -e 'ssh -p <port-number>' --progress --delete [email :/path/to/remote/folder /path/to/local/folder

I forbindelse med denne tutorial bruger jeg to systemer.

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1
Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

Lad os synkronisere indholdet af fjernserverens /backup1 -mappe til mit lokale systems mappe /home/sk/backup2/.

$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
[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.

Lad os kontrollere indholdet af mappen /backup1/ på fjernserveren.

$ sudo ls -l /backup1/
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

Lad os nu kontrollere indholdet af /backup2/ -mappen i det lokale system.

$ ls /home/sk/backup2/
backup1

Som du ser i ovenstående output er indholdet af /backup1/ kopieret med succes til mit lokale systems katalog /home/sk/backup2/.

Bekræft mappen /backup1/:

$ ls /home/sk/backup2/backup1/
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, at både fjerntliggende og lokale systems mapper har samme filer.

Konklusion

Synkronisering af filer/mapper ved hjælp af Rsync med SSH er ikke kun let, men også hurtig og sikker metode. Hvis du står bag en firewall, der begrænser port 22, er du ikke bekymret. Skift bare standardporten og synkroniser filer som en professionel.