Hur man använder FTP-kommandot på Linux

By rik

Filöverföring via FTP, ett protokoll med anor, används fortfarande trots sin ålder. Även om det saknar den säkerhet som moderna metoder erbjuder, kan det fortfarande vara relevant i vissa situationer. Här förklarar vi hur du använder det.

Varning: Undvik FTP över Internet

Det är avgörande att förstå att FTP (File Transfer Protocol) har rötterna i 1970-talet och skapades utan inbyggt säkerhetstänk. Protokollet saknar kryptering helt. Detta innebär att inloggningsinformation, inklusive användarnamn och lösenord, samt all data du skickar eller tar emot, färdas i klartext. Potentiellt kan alltså obehöriga på nätverket avlyssna din information. Trots detta har FTP fortfarande några användningsområden.

Om du överför filer inom ett lokalt nätverk kan det anses säkert, under förutsättning att ingen i nätverket ”sniffar” paket och fångar upp känslig information under överföringen. För icke-konfidentiella filer kan FTP vara ett praktiskt sätt att flytta filer inom ett internt nätverk. Linux har ett inbyggt kommandoradsverktyg för just detta ändamål.

Använd aldrig FTP för att komma åt resurser över internet. Istället bör du använda kommandoradsverktyget sftp, som baseras på det säkrare SSH File Transfer Protocol. Vi kommer att gå igenom båda dessa verktyg i denna guide.

För att understryka riskerna med att använda FTP över internet, observera bilden nedan. Den illustrerar hur ett FTP-lösenord visas i klartext. En angripare kan enkelt se lösenordet ”MittHemligaLösenord” om de har tillgång till nätverket eller trafiken mellan din dator och FTP-servern.

Utan kryptering riskerar du även att filer som du laddar upp eller ner kan manipuleras under överföringen.

Kommandot ftp

Förutsatt att du har ett konto på en FTP-server, kan du ansluta med följande kommando. Ersätt IP-adressen i kommandot med den IP-adress som tillhör din FTP-server:

ftp 192.168.4.25

Viktigt: Använd endast `ftp`-kommandot för att ansluta till servrar inom ett säkert, lokalt nätverk. För filöverföring över internet bör du använda `sftp`-kommandot, som beskrivs nedan.

FTP-servern svarar med ett välkomstmeddelande, vars exakta formulering varierar. Sedan efterfrågas användarnamnet för kontot du vill logga in på.

Observera att IP-adressen till servern, samt ditt Linux-användarnamn, visas. Om ditt kontonamn på FTP-servern är identiskt med ditt Linux-användarnamn kan du helt enkelt trycka på Enter. Då används ditt Linux-användarnamn som inloggningsnamn för FTP-servern. Om de skiljer sig åt, anger du FTP-kontots användarnamn och trycker på Enter.

Logga in på FTP-servern

Du kommer att bli ombedd att ange lösenordet för ditt FTP-konto. Skriv in lösenordet och tryck på Enter. Lösenordet kommer inte att visas på skärmen. Om användarnamnet och lösenordet godkänns, loggas du in på FTP-servern.

Du möts då av `ftp>`-prompten.

Navigera och Ladda Ner Filer

Först kan det vara bra att visa en lista över filer på FTP-servern. Använd `ls`-kommandot för detta. I detta exempel ser vi filen `gc.c` på FTP-servern, som vi vill ladda ner till den lokala datorn. Den lokala datorn benämns just ”lokal” i FTP-sammanhang.

För att ladda ner en fil används `get`-kommandot. Användaren skriver därför `get gc.c`, det vill säga `get`, ett mellanslag och sedan filnamnet.

FTP-servern överför då filen till den lokala datorn och bekräftar överföringen. Filens storlek och överföringstiden visas också.

ls
get gc.c

För att hämta flera filer samtidigt används `mget` (multiple get). `mget` kommer att be dig bekräfta att du vill ladda ner varje fil individuellt. Svara med `y` för ja, eller `n` för nej.

Detta kan vara tidskrävande för ett stort antal filer. Därför lagras ofta relaterade filer i komprimerade arkiv som `tar.gz`- eller `tar.bz2`-filer.

mget *.c

Ladda Upp Filer Till FTP-servern

Beroende på vilka behörigheter ditt FTP-konto har, kan du kanske ladda upp (eller ”sätta”) filer till servern. Använd kommandot `put` för att ladda upp en fil. I detta exempel laddar användaren upp filen `Songs.tar.gz` till FTP-servern.

put Songs.tar.gz

Som väntat finns ett kommando för att lägga till flera filer samtidigt till FTP-servern, `mput` (multiple put). Precis som `mget`, kommer `mput` att kräva en `y` eller `n` bekräftelse för varje fil som laddas upp.

Samma resonemang som gäller för filnedladdning, om att organisera filer i arkiv, gäller även för uppladdning. Vår användare laddar upp flera `.odt`-filer med följande kommando:

mput *.odt

Skapa och Hantera Kataloger

Om ditt konto på FTP-servern tillåter det, kan du skapa nya kataloger. Kommandot för detta är `mkdir`. Alla kataloger som skapas med `mkdir` skapas på FTP-servern, inte på din lokala dator.

För att byta katalog på FTP-servern används kommandot `cd`. Observera att `ftp>`-prompten inte ändras för att återspegla den nya katalogen. Kommandot `pwd` (print working directory) visar aktuell katalog.

I exemplet skapar vi katalogen `musik`, byter till denna katalog, kontrollerar att vi befinner oss där med `pwd` och laddar sedan upp en fil till katalogen.

mkdir music
cd music
pwd
put songs.tar.gz

Använd `cdup` för att snabbt navigera till den överordnade katalogen.

cdup

Åtkomst till den Lokala Datorn

För att byta katalog på den lokala datorn, används `lcd` vid `ftp>`-prompten. Dock är det lätt att förlora spår om var du befinner dig i det lokala filsystemet. En mer praktisk metod är att använda `!`-kommandot.

Kommandot `!` öppnar ett skal på den lokala datorn. Här kan du utföra kommandon som du skulle i ett vanligt terminalfönster. När du skriver `exit` återgår du till `ftp>`-prompten.

I exemplet har användaren använt `!`-kommandot och gått in i ett skal på den lokala datorn. De har angett `ls` för att se vilka filer som finns i katalogen och sedan `exit` för att återgå till `ftp>`-prompten.

!
ls
exit

Byt Namn på Filer

Använd `rename`-kommandot för att byta namn på filer på FTP-servern. Här byter användaren namn på en fil med `rename` och använder sedan `ls` för att lista filerna i katalogen.

rename songs.tar.gz rock_songs.tar.gz
ls

Radera Filer

Använd kommandot `delete` för att radera filer på FTP-servern. För att radera flera filer samtidigt används `mdelete`. Du kommer att få en förfrågan om att bekräfta med `y` eller `n` för varje fil.

I exemplet listar användaren filerna, väljer en att radera och sedan bestämmer sig för att radera alla.

ls
delete gc.o
mdelete *.o

Använda sftp-kommandot

Läsare med kunskap om IP-adresser kommer ha lagt märke till att 192.168-adressen i exemplen ovan är en intern, eller privat IP-adress. Som nämnts i början, bör `ftp` endast användas på interna nätverk.

Använd `sftp` för att ansluta till en extern FTP-server. Användaren i exemplet ansluter till ett SFTP-konto med namnet `demo` på den publika FTP-servern på `test.trebex.net`.

Efter anslutning får de ett meddelande att anslutningen är upprättad. De informeras även om att värdens autenticitet inte kan verifieras. Detta är normalt första gången du ansluter till en ny värd. De trycker på `y` för att godkänna anslutningen.

Eftersom användarnamnet (`demo`) angetts i kommandot, behöver de inte ange det igen. De blir enbart tillfrågade om lösenordet. När lösenordet matats in, verifierats och godkänts, visas `sftp>`-prompten.

sftp [email protected]

FTP-kommandona som beskrivits tidigare fungerar på samma sätt i en SFTP-session, med följande undantag:

  • För att radera en fil används `rm` (FTP använder `delete`)
  • För att radera flera filer används `rm` (FTP använder `mdelete`)
  • För att flytta till den överordnade katalogen används `cd ..` (FTP använder `cdup`)

I exemplet använder vår användare några kommandon i sin SFTP-session. De använder `ls` för att lista filerna och `cd` för att byta till `pub`-katalogen. De har använt `pwd` för att visa aktuell katalog.

Det finns andra metoder för filöverföring i Linux, särskilt `scp` (säker kopia), men här har vi fokuserat på FTP och SFTP. Om de används i rätt scenarion, är dessa två kommandon till stor hjälp vid hantering av filöverföring.