Cryptology Academy · Lektion

SFTP och SCP: säker filöverföring

Jämför SFTP och SCP med osäkra FTP och förstå vilka kryptografiska skydd de erbjuder.

Lektion 3 av 413 steg

SFTP och SCP: säker filöverföring är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

SFTP är ett SSH-undersystem, inte FTP

Trots namnet har SFTP (SSH File Transfer Protocol) ingenting med FTP att göra. Det är ett binärt protokoll som är utformat för att köras som ett SSH-2-undersystem, vilket innebär att det använder en befintlig autentiserad och krypterad SSH-anslutning. SSH-klienten startar SFTP-undersystemet på servern med kommandot ssh user@host -s sftp. Alla SFTP-åtgärder ärver säkerhetsgarantierna från det underliggande SSH-transportlagret.

SFTP:s funktioner

SFTP tillhandahåller ett omfattande urval av filåtgärder över den krypterade kanalen: lista kataloginnehåll, ladda upp filer, ladda ned filer, ta bort och byta namn på filer, skapa och ta bort kataloger, läsa och ange filbehörigheter och tidsstämplar samt återuppta avbrutna överföringar. Dessa funktioner gör SFTP till ett komplett fjärrfilsystemsgränssnitt, inte bara ett verktyg för filöverföring.

SCP: enklare filkopiering över SSH

SCP (Secure Copy Protocol) är ett äldre och enklare protokoll för filöverföring över SSH. Kommandot scp file.txt user@host:/path kopierar en fil på ett säkert sätt. SCP är enklare att använda än SFTP vid enstaka överföringar, men stöder endast en delmängd av åtgärder: kopiering från lokalt till fjärrsystem, från fjärrsystem till lokalt eller från ett fjärrsystem till ett annat. Det saknar interaktivt läge och har begränsat stöd för att återuppta avbrutna överföringar.

SCP-protokollets sårbarheter

Det ursprungliga SCP-protokollet hade en betydande sårbarhet: en skadlig server kunde skicka godtyckliga filer till klienten, oavsett vad klienten begärde. En angripare som kontrollerade servern kunde skriva över filer utanför den avsedda målkatalogen. OpenSSH fasade ut det äldre SCP-protokollet till förmån för SFTP-baserad scp i OpenSSH 9.0 (2022). Moderna scp-kommandon använder SFTP underliggande, vilket eliminerar denna angreppsklass samtidigt som den välbekanta kommandosyntaxen bevaras.

FTP kontra FTPS kontra SFTP

Tre säkra alternativ för filöverföring blandas ofta ihop. FTP (port 21) är okrypterat och bör inte användas. FTPS (FTP över SSL) lägger till TLS till FTP på port 990 (implicit) eller port 21 (explicit med AUTH TLS), vilket kräver FTP-infrastruktur samt certifikathantering. SFTP är ett helt separat protokoll över SSH (port 22) och återanvänder befintlig SSH-autentisering och nyckelhantering. SFTP är i allmänhet enklare att konfigurera och underhålla än FTPS.

rsync över SSH för effektiv synkronisering

rsync är ett verktyg för filsynkronisering som endast överför de ändrade delarna av filer, vilket gör det betydligt effektivare än SCP för inkrementella säkerhetskopieringar. När rsync körs med flaggan -e ssh dirigeras alla data genom en SSH-tunnel. Kommandot rsync -avz -e ssh user@host:/remote/ /local/ synkroniserar en fjärrkatalog med en lokal katalog och överför endast ändringarna. rsync över SSH är standardmetoden för säkerhetskopiering av servrar och distributionsarbetsflöden.

Hantera stora filöverföringar

SFTP stöder återupptagbara överföringar: om anslutningen bryts under uppladdningen av en stor fil kan överföringen återupptas från den senast bekräftade byten i stället för att startas om från början. OpenSSH:s sftp-klient stöder kommandot reput för att återuppta uppladdningar och reget för att återuppta nedladdningar. För mycket stora överföringar (filer på flera gigabyte) erbjuder verktyg som lftp mer robust hantering av överföringar, med automatiska återförsök och bandbreddsbegränsning.

SFTP-chrootmiljöer för begränsad åtkomst

OpenSSH-servern kan begränsa SFTP-användare till ett specifikt katalogträd med hjälp av en chroot-miljö. Om direktivet Match User med ChrootDirectory och ForceCommand internal-sftp läggs till i SSH-konfigurationen skapas en isolerad SFTP-miljö. Användaren kan ladda upp och ned filer i den tilldelade katalogen, men kan inte komma åt resten av filsystemet eller köra skalkommandon. Detta används ofta för filhantering inom webbhotell och portaler för klientuppladdningar.

Konfigurera en SFTP-server

För att aktivera SFTP på en OpenSSH-server måste Subsystem sftp /usr/lib/openssh/sftp-server läggas till i sshd_config. Binärfilen sftp-server hanterar alla åtgärder i SFTP-protokollet. För chroot-konfigurationer måste ChrootDirectory ägas av root och inte vara skrivbar för någon annan användare, vilket är en vanlig källa till konfigurationsfel. Om konfigurationen testas med sshd -t kontrolleras syntaxen innan tjänsten läses in på nytt.

SFTP för automatiserade arbetsflöden för säkerhetskopiering

SFTP passar väl för automatiserade säkerhetskopieringspipelines. En säkerhetskopieringsserver använder autentisering med en publik nyckel för att ansluta utan lösenord, vilket möjliggör överföringar schemalagda med cron utan mänsklig inblandning. Säkerhetskopieringsanvändaren begränsas med chroot till uppladdningskatalogen, vilket begränsar skadan om säkerhetskopieringsservern skulle komprometteras. Övervakning av loggar efter misslyckade SFTP-anslutningar och överföringsfel ger tidiga varningar om problem med säkerhetskopieringen, innan de påverkar möjligheten till återställning.

SFTP-klientverktyg

Utöver sftp-klienten på kommandoraden stöder grafiska verktyg som FileZilla, Cyberduck och WinSCP SFTP med dra-och-släpp-gränssnitt, hantering av bokmärken och katalogvyer sida vid sida. Dessa verktyg är populära bland utvecklare och administratörer som föredrar grafiska arbetsflöden. Alla använder samma underliggande SFTP-protokoll och SSH-autentisering, inklusive stöd för SSH-nyckelfiler och systemets SSH-agent.

SFTP jämfört med SCP

Vilken var den huvudsakliga säkerhetssårbarheten i det äldre SCP-protokollet som fick OpenSSH att ersätta det med en SFTP-baserad implementation?

SFTP och SCP: Viktiga slutsatser

SFTP är ett SSH-undersystem och har inget samband med FTP. Det tillhandahåller fullständiga filsystemsåtgärder på distans över krypterad SSH. SCP är enklare, men det äldre protokollet hade en sårbarhet för sökvägstraversering på serversidan. Den åtgärdades i OpenSSH 9.0 genom att SFTP används underliggande. FTPS lägger till TLS i FTP, medan SFTP helt bygger på SSH. rsync över SSH tillhandahåller effektiv inkrementell synkronisering. Chroot-jails begränsar SFTP-användare till angivna kataloger.

Gratis att börja

Lär dig Cryptology Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
67
Lektioner
261

Vanliga frågor

Är lektionen ”SFTP och SCP: säker filöverföring” gratis?

Ja – hela texten till ”SFTP och SCP: säker filöverföring” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”SFTP och SCP: säker filöverföring”?

Jämför SFTP och SCP med osäkra FTP och förstå vilka kryptografiska skydd de erbjuder. Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?

Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”SFTP och SCP: säker filöverföring”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?

Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Vad kännetecknar ett säkert protokoll
  2. SSH: säkra fjärranslutningar
  3. SFTP och SCP: säker filöverföring
  4. DNSSEC: autentisera DNS-svar
← Tillbaka till Cryptology Academy