På denne siden

Dette kapittelet dekker å koble seg til andre maskiner og flytte filer mellom dem, alt over SSH-protokollen. Hvis du selv hoster en server, er dette kommandoene du bruker hver dag.

ssh — koble til en ekstern maskin

ssh åpner en kryptert terminalsesjon på en ekstern datamaskin.

$ ssh [email protected]
user@server:~$

Hvis brukernavnet er det samme lokalt og eksternt, kan du utelate det:

$ ssh server.example.com

For å kjøre en enkelt kommando på den eksterne maskinen uten å åpne en sesjon:

$ ssh [email protected] "uptime"

Første gang du kobler til, blir du bedt om å bekrefte serverens host-key; deretter logger du inn med passordet ditt.

Nøkler er bedre enn passord. Et nøkkelpar lar deg logge inn uten å skrive passord:

$ ssh-keygen -t ed25519
$ ssh-copy-id [email protected]

Etter ssh-copy-id logger denne deg rett inn:

Vil du ha hele bildet — fingeravtrykk, passordfraser, agenten, kallenavn i konfigfila? Les guiden SSH — fra passord til nøkler. Er det deg som drifter serveren? Guiden SSH — herding av serveren sikrer den andre enden.

scp — kopier filer over SSH

scp kopierer filer mellom maskiner, i begge retninger.

Kopier en fil til en ekstern maskin:

$ scp local.txt [email protected]:/home/user/

Kopier en fil fra en ekstern maskin:

$ scp [email protected]:/home/user/remote.txt .

Mapper trenger -r:

$ scp -r project/ [email protected]:/home/user/

scp bruker SSH, så nøkler fungerer også her — ingen passordprompt når ssh-copy-id er satt opp.

rsync — smart filsynkronisering

rsync kopierer filer effektivt: den overfører bare det som er endret, og kan speile hele mappetrær. Det er det beste verktøyet for sikkerhetskopier og for å publisere et nettsted.

Grunnmønsteret — synkroniser en lokal mappe inn i en ekstern:

$ rsync -av project/ [email protected]:/var/www/
Flagg Betydning
-a arkivmodus: rekursiv og bevarer metadata
-v verbose: vis hva som overføres
-z komprimer under overføring
-n tørrkjøring: vis hva som ville skjedd, endrer ingenting
--delete fjern eksterne filer som ikke lenger finnes lokalt

Kjør alltid en tørrkjøring først for --delete:

$ rsync -avn --delete project/ [email protected]:/var/www/

Den avsluttende /project/ betyr noe: med den kopierer rsync innholdet i mappen; uten den kopierer rsync selve mappen.

Publiseringsmønsteret: å bygge et statisk nettsted lokalt og pushe utdataen til en server er akkurat dette:

$ rsync -avz --delete public/ [email protected]:/var/www/html/

sftp — interaktiv filoverføring

sftp er en interaktiv FTP-lignende sesjon over SSH — nyttig når du vil utforske før du overfører.

$ sftp [email protected]
Connected to server.example.com.
sftp> ls
sftp> put local.txt
sftp> get remote.txt
sftp> quit

Vanlige kommandoer i sftp: ls, cd, put (last opp), get (last ned), quit/exit.

En merknad om passord: de gamle ftp og telnet sendte alle passord ukryptert — nøyaktig derfor erstatter verktøyene i dette kapittelet dem. ssh, scp, rsync og sftp krypterer all trafikk. Tast passordene dine i disse, aldri i forgjengerne deres, og hold SSH-nøklene dine for deg selv.