Så här hämtar du en fil från en server med SSH / SCP

Användare kan säkert ladda ner en fil från en fjärrserver med SSH genom att använda scp-verktyget på kommandoraden. I huvudsak innebär det att du kan få en fil lagrad säkert på en fjärrserver och överföra den till lokal lagring utan att behöva exponera den filen till omvärlden, eftersom scp erbjuder samma säkerhetsnivå och kräver samma autentisering som ssh gör.


Säker nedladdning av filer med scp riktar sig främst till avancerade användare som använder ssh och kommandoraden regelbundet i antingen macOS x, bsd eller linux. För dem med adekvat kommandoradserfarenhet är det enkelt att använda ssh och scp för att ladda ner fjärranslutna filer, efter att filöverföringen har slutförts, kommer fjärranslutningen att sluta. Detta gör SCP-preferens till sftp för snabbfilhämtningar, men du kan självklart använda sftp om du ville också.

Hämtar en fil från fjärrserver med SSH Secure Copy

Detta förutsätter att fjärrservern har ssh aktiv, och om du kan ssh in i maskinen så kommer det troligtvis att ha scp aktiva också. Om du inte har en fjärrserver för att försöka med det kan du prova mellan Mac OS X-maskiner eller med localhost om du aktiverar ssh och Remote Login på Mac på förhand.

Den grundläggande syntaxen för att använda scp (säker kopia) för säker nedladdning av fjärrfiler är som följer, ersätter användare, server, sökväg och mål efter behov:

scp [email protected]:/path/to/remotefile.zip /Local/Target/Destination

Till exempel, för att hämta en fil till det lokala skrivbordet med namnet "filename.zip" som finns i hemkatalogen för fjärråtkomst "osxdaily" på servern IP 192.168.0.45, skulle syntaxen vara enligt följande:

% scp [email protected]:filename.zip ~/Desktop/
Password:
filename.zip 100% 126 10.1KB/s 00:00
%

Om du antar att autentisering är korrekt kommer målfilen omedelbart att hämtas till måldestinationen, som erbjuder en procentuell slutförd, nedladdningshastighet och förfluten överföringstid, som filnedladdningen fortsätter.

Som vanligt med kommandoraden är det viktigt att ange exakt syntax.

Om filen eller sökvägen har ett mellanslag i namnet kan du använda citat eller flyga på vägen så här:

scp [email protected]:"/some remote directory/filename.zip" ~/Desktop/

scp kan också användas för att säkert placera en fil på en fjärrserver genom att justera syntaxen, men vi fokuserar på att hämta en fil istället för att ladda upp filer här.

Om du är ny på ssh och testar ut det själv, och om du aldrig har anslutit till fjärrservern tidigare, kommer du att bli ombedd att bekräfta huruvida du verkligen vill ansluta till fjärrmaskinen. Det ser ut som det, och kräver ett ja eller nej svar innan nedladdningen börjar.
% scp [email protected]:filename.zip ~/Desktop/
The authenticity of host '192.168.0.4 (192.168.0.4)' can't be established.
ECDSA key fingerprint is SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.4' (ECDSA) to the list of known hosts.
Password:
filename.zip 100% 126 0.1KB/s 00:00
%

Återigen, förutsatt att anslutningen godkänns och inloggningen lyckas, kommer fjärrfilen att hämtas från målservern till lokala värd.

Du kan också använda scp för att hämta flera filer från en fjärrserver:

scp [email protected]:/remote/path/\{file1.zip, file2.zip\} /Local/Path/

Att använda ssh för fjärrfilhämtningar som denna är mest lämplig för säkra överföringar som kräver autentisering. Visst kan du också ladda ner filer med curl eller wget från fjärrservrar, men filer som är tillgängliga med curl och wget är också tillgängliga från omvärlden, medan ssh och scp kräver autentisering eller en nyckel och använder 3DES-kryptering, vilket gör det väsentligt mer säker.