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:
$ ssh [email protected]
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 / på 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.