Hopp til hovedinnhold

Rsync over SSH

Kapittel 9

Rsync kan bruke flere ulike protokoller for å overføre data. Den sikreste og mest brukte er SSH, som sørger for at all kommunikasjon og dataoverføring skjer kryptert. Dette beskytter både brukernavn, passord og selve filinnholdet mot innsyn.

Hvordan rsync over SSH fungerer

Option -e lar deg bestemme hvilken type shell Rsync skal bruke for kommunikasjon. SSH er standardvalg i moderne installasjoner, og krever vanligvis ikke at du oppgir -e manuelt.

For at Rsync skal fungere over SSH må følgende være på plass:

  • Både kilde og destinasjon må ha Rsync installert.
  • Lokalt system må ha en fungerende SSH-klient (OpenSSH).
  • Serveren må ha SSH installert og kjørende.
  • Du må ha en gyldig konto på serveren.

Når Rsync kjører over SSH etableres en sikker tunnel, og all data sendes kryptert. Dette er en stor fordel sammenlignet med Rsync-daemon, som sender data i klartekst.

Eksempel: overføre fil fra lokal maskin til server

rsync -avhP my-file.txt john@rsyncserver1.com:

eller

rsync -avhP my-file.txt john@132.342.12.011:

Forklaring:

  • -a Bevarer filstruktur og metadata (arkivmodus)
  • -v Viser fremdrift (verbose)
  • -h Viser filstørrelser i lesbart format
  • -P Viser fremdrift og tillater gjenopptakelse av delvise filer
  • john@rsyncserver1.com:Angir brukeren, serveren og kolon som markerer destinasjon via SSH

Viktig: Her brukes ett kolon (:) for å angi SSH. Bruker du to kolon (::) vil Rsync bruke sin egen daemon-protokoll i stedet.

Når kommandoen kjøres, opprettes en SSH-forbindelse til serveren. Du blir bedt om passord for brukeren, med mindre du har satt opp SSH-nøkler for nøkkelfri autentisering.

Spesifisere eget SSH-portnummer

Hvis serveren bruker et annet portnummer enn standard (22), må du angi dette eksplisitt med flagget -e.

Eksempel:

rsync -avhP -e "ssh -p 2222" my-file.txt john@rsyncserver1.com:/home/john/files

Forklaring:

  • -e Forteller Rsync hvilken ekstern kommando den skal bruke (her ssh).
  • ssh -p 2222 Angir at SSH skal bruke port 2222 i stedet for 22.

Du kan også bruke denne metoden for alle andre SSH-alternativer, for eksempel spesifikke nøkler:

rsync -avhP -e "ssh -p 2222 -i /home/john/.ssh/backupkey" my-file.txt john@rsyncserver1.com:/data

Destinasjonsmappe

Hvis du ikke spesifiserer en mappe, lagres filen i brukerens hjemmekatalog på serveren.

Eksempler:

rsync -avhP my-file.txt john@rsyncserver1.com:

→ Filen kopieres til /home/john/ på serveren.

For å spesifisere en annen destinasjon, legg til stien etter kolon:

rsync -avhP my-file.txt john@rsyncserver1.com:rsync-folder

eller

rsync -avhP my-file.txt john@rsyncserver1.com:/home/rsync-folder

Merk at brukeren må ha skrive- og lese-rettigheter i den aktuelle katalogen.

Kopiere filer fra server til lokal maskin

For å hente filer fra serveren til din maskin, bytt bare rekkefølgen på kilde og destinasjon:

rsync -avhP john@rsyncserver1.com:my-file.txt

Dette kopierer filen my-file.txt fra serverens hjemmemappe til nåværende katalog.

Du kan også lagre filen under et nytt navn:

rsync -avhP john@rsyncserver1.com:my-file.txt: myfilecopy.txt

Autentisering

Ved første tilkobling blir du bedt om å bekrefte serverens fingerprint, og deretter oppgi passord for brukeren. Dersom du har satt opp SSH-nøkler (uten passord eller med passordbeskyttelse), brukes disse automatisk.

Dette gjør det mulig å automatisere Rsync-jobber uten å måtte skrive inn passord hver gang, samtidig som forbindelsen fortsatt er kryptert.

Fordeler med rsync over SSH

  • Kryptert kommunikasjon og dataoverføring
  • Kan bruke eksisterende SSH-nøkler og konfigurasjon
  • Krever ingen egen Rsync-daemon
  • Passer godt til sikkerhetskopiering og synkronisering over internett
  • Kan enkelt angi port, nøkkel og andre SSH-parametere via -e

Høydepunkter – rsync over SSH

Kopiere fil til server:

rsync -avhP my-file.txt john@server:

Kopiere fil til spesifikk mappe:

rsync -avhP my-file.txt john@server:/path/to/folder

Kopiere fil fra server til lokal maskin:

rsync -avhP john@server:my-file.txt .

Kopiere fil fra server og gi nytt navn:

rsync -avhP john@server:my-file.txt myfilecopy.txt

Bruke spesifikk SSH-port:

rsync -avhP -e "ssh -p 2222" my-file.txt john@server:/path

Bruke spesifikk SSH-nøkkel:

rsync -avhP -e "ssh -i /home/john/.ssh/backupkey" my-file.txt john@server:/data
Robert Kristoffersen
Fullstack-utvikler • Webno