De flesta föredrar verktyg som FileZilla eller WinSCP när de behöver överföra filer till eller från Linux / BSD-servrar. Om OpenSSH-demonen körs på den datorn kan du ansluta till den via Secure / SSH FTP-protokollet (SFTP). Ovannämnda verktyg gör det lättare att överföra filer genom att erbjuda ett grafiskt gränssnitt, men du måste installera och konfigurera dessa program.
Vissa purister föredrar att inte behöva installera extra verktyg. Andra människor föredrar helt enkelt kommandoraden eftersom det ger dig mer kontroll och ett snabbare sätt att berätta för verktyget vad du vill att det ska göra. Men nu finns det en extra anledning att använda kommandoraden när du vill överföra filer. Windows 10 började som standard inkludera en OpenSSH-klient som låter dig logga in på Linux / BSD-servrar direkt från kommandotolken.
Denna klient kommer också med en massa andra verktyg, och SFTP är bland dem. Så du kan nu också överföra filer till Linux / BSD-operativsystem direkt från kommandotolken utan att behöva installera något på din Windows-maskin.
Sftp-verktyget finns också på Linux-maskiner och fungerar på samma sätt.
Hur man loggar in med sftp-kommandot
Om du använder Windows öppnar du kommandotolken. Om du använder Linux öppnar du ett terminalfönster.
För att logga in på en server med sftp
kommandot använder du exakt samma syntax som med ssh
kommando. Om du inte känner till denna syntax läser du självstudien som länkas i introduktionsavsnittet.
sftp your_username@IP-address-or-hostname
Exempelkommandon:
sftp john@203.0.113.1 sftp john@example.com
Hur man laddar ner filer efter att du loggat in med sftp
Du kan nu ange kommandon på sftp >
uppmanas att interagera med filer på servern.
För att ladda ner en fil:
get /path/to/file/on/server
Exempel:
get /bin/ls
Detta hämtas till din nuvarande katalog, den du befann dig lokalt innan du loggade in på servern. För att ladda ner till en viss lokal katalog (på Windows):
get /path/to/file/on/server C:pathtolocalfolder
Exempel
get /bin/ls C:UserJohnDesktop
På Linux använder du helt enkelt Unix-sökvägar (snedstreck i stället för snedstreck):
get /bin/ls /home/john/Desktop
Notera: även om du (felaktigt) använder snedstreck för Windows-sökvägar, i sftp, verkar det som verktyget förstår dem.
Banor kan också vara relativa. Det betyder att om du redan var i C:UserJohn
när du öppnade Kommandotolken kan du ladda ner till skrivbordet (C:UserJohnDesktop
) med:
get /bin/ls Desktop
Fjärrvägarna kan också vara relativa, vilket innebär att om du loggar in med sftp john@203.0.113.1
, kommer du redan i katalogen “/ home / john”, så du kan använda den för att ladda ner “/ home / john / file:”
get file Desktop
Detta skulle ladda ner ”/ home / john / file” till ”C: Users YourUser Desktop file.”
För att kopiera kataloger måste du lägga till -r
parameter till kommandot, som står för rekursivt.
get -r /bin Desktopbin
Kom ihåg att lägga till ett namn för den nya katalogen du vill skapa lokalt, som ”Desktop bin” i det här fallet. Om du skulle använda get -r /bin Desktop
, filer kopieras direkt på skrivbordet. Det är filerna som kopieras, inte själva katalogen.
Så här laddar du upp filer när du loggar in med sftp
Att ladda upp filer eller kataloger följer samma principer. Det enda undantaget är att sökvägarna är omvända, vilket innebär att du först anger den lokala filen / katalogen och sedan fjärrvägen.
På Windows:
put C:pathtolocalcontent /path/where/to/upload
På Linux:
put /path/to/local/content /path/to/remote/location
När du laddar upp kataloger (rekursiv), kom ihåg att samma regel som i föregående avsnitt gäller: det är faktiskt filerna i katalogen som kopieras, inte själva katalogen. Så ange ett nytt namn för en katalog som du vill kopiera filerna till.
put -r Desktop/bin bin
Detta skulle skapa en ny katalog som heter ”bin” på fjärrsidan.
För att avsluta sftp-skalet, skriv bara:
exit
Hur återuppta överföringar och använda banor som innehåller utrymmen
När du överför en stor fil, om den blir avbruten, kan du fortsätta genom att ersätta föregående kommando med reput
och reget
istället för put
och get
. Se bara till att du använder exakt samma sökvägar som du använde förra gången, så att källa och destination matchar exakt.
reget /path/to/file/on/server C:pathtolocalfile reput C:pathtolocalfile /path/to/file/on/server
För att återuppta katalogöverföringar, lägg bara till -r
parameter
reput -r Desktop/bin bin
Om sökvägen till en fil innehåller mellanslag, placera den inom citattecken.
Det här fungerar inte:
put C:Program Files (x86)SteamsteamappscommonThe Witcher 3SOUNDTRACKThe_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip
Men detta kommer att:
put "C:Program Files (x86)SteamsteamappscommonThe Witcher 3SOUNDTRACKThe_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip"
(Ja, du kan faktiskt hitta Witcher 3s soundtrack där om du har det installerat på Steam.)
Slutsats
Detta täcker de viktigaste sakerna du behöver veta om sftp. Om du upptäcker att du har behov av att lära dig mer kan du läsa Komplett sftp-kommandohandbok uppkopplad.