Het File Transfer Protocol is ouder dan de meeste van onze lezers, maar het gaat nog steeds goed. FTP heeft niet de beveiliging van een modern protocol, maar u moet het misschien toch gebruiken. Hier is hoe het te doen.
Waarschuwing: gebruik geen FTP via internet
Laten we dit vanaf het begin duidelijk maken: het File Transfer Protocol (FTP) dateert uit de vroege jaren 70 en is geschreven zonder enige aandacht voor veiligheid. Het gebruikt nergens codering voor. Inloggegevens zoals uw gebruikersnaam en wachtwoord, evenals de gegevens die u downloadt of uploadt, worden in duidelijke tekst overgedragen. Iedereen die onderweg is, kan uw geheimen inzien. FTP heeft echter nog steeds zijn toepassingen.
Als u bestanden binnen uw netwerk overdraagt, zou u veilig moeten zijn, zolang niemand op het netwerk aan het pakket-snuiven en afluisteren van gevoelige documenten terwijl u ze overdraagt. Als uw bestanden op geen enkele manier vertrouwelijk of gevoelig zijn, zou het prima moeten zijn om ze met FTP over uw interne netwerk te verplaatsen. Linux heeft de standaard
ftp
opdrachtregelprogramma
om precies dat scenario aan te pakken.
Maar
Vast en zeker
gebruik niet de
ftp
opdracht om toegang te krijgen tot externe bronnen op internet. Gebruik daarvoor de
sftp
opdrachtregelprogramma
, dat het beveiligde SSH File Transfer Protocol gebruikt. We introduceren beide programma's in deze tutorial.
Bekijk de onderstaande schermafbeelding om duidelijk te maken waarom u FTP nooit via internet wilt gebruiken. Het toont het FTP-wachtwoord in platte tekst. Iedereen op uw netwerk of tussen u en de FTP-server op internet kan gemakkelijk zien dat het wachtwoord 'MySecretPassword' is.
Zonder de versleuteling kan een kwaadwillende actor ook bestanden wijzigen die u tijdens de overdracht downloadt of uploadt.
Het ftp Command
Ervan uitgaande dat u een geldig account op een FTP-site heeft, kunt u er verbinding mee maken met de volgende opdracht. Vervang in dit artikel het IP-adres in de opdrachten door het IP-adres van de FTP-server waarmee u verbinding maakt.
ftp 192.168.4.25
Waarschuwing
: U mag alleen de
ftp
opdracht om verbinding te maken met servers op een vertrouwd lokaal netwerk. Gebruik de
sftp
commando, hieronder behandeld, voor het overbrengen van bestanden via internet.
De FTP-server reageert met een welkomstbericht. De bewoording van de begroeting varieert van server tot server. Vervolgens wordt gevraagd naar de gebruikersnaam van het account waarop u zich aanmeldt.
Merk op dat het IP-adres van de site waarmee u verbinding maakt, wordt weergegeven, gevolgd door uw Linux-gebruikersnaam. Als uw accountnaam op de FTP-server hetzelfde is als uw Linux-gebruikersnaam, drukt u gewoon op Enter. Dit zal uw Linux-gebruikersnaam gebruiken als de accountnaam op de FTP-server. Als uw Linux-gebruikersnaam en de FTP-accountnaam verschillen, typt u de gebruikersnaam van de FTP-account en drukt u op Enter.
Inloggen op de FTP-server
U wordt gevraagd uw wachtwoord voor de FTP-site in te voeren. Voer uw wachtwoord in en druk op Enter. Uw wachtwoord wordt niet op het scherm weergegeven. Als de combinatie van uw FTP-gebruikersnaam en wachtwoord is geverifieerd door de FTP-server, wordt u aangemeld bij de FTP-server.
U krijgt de
ftp>
prompt.
Rondkijken en bestanden ophalen
Allereerst wilt u waarschijnlijk een lijst van de bestanden op de FTP-server krijgen. De
ls
commando doet precies dat. Onze gebruiker ziet het bestand
gc.c
staat op de FTP-server en hij wil het downloaden naar zijn eigen computer. Zijn computer is de "lokale computer" in FTP-taalgebruik.
Het commando om een bestand op te halen (of "ophalen") is
krijgen
. Onze gebruiker geeft daarom het commando
krijg gc.c
. Ze typen
krijgen
, een spatie en vervolgens de naam van het bestand dat ze willen ophalen.
De FTP-server reageert door het bestand naar de lokale computer over te brengen en te bevestigen dat de overdracht heeft plaatsgevonden. De grootte van het bestand en de tijd die het kostte om over te zetten, worden ook weergegeven.
ls
krijg gc.c
Om meerdere bestanden tegelijk op te halen, gebruikt u de
mget
(meerdere get) -opdracht. De
mget
commando zal u vragen om te bevestigen of u elk bestand beurtelings wilt downloaden. Reageer door op "y" te drukken voor ja en "n" voor nee.
Dit zou vervelend zijn voor een groot aantal bestanden. Daarom worden verzamelingen van gerelateerde bestanden meestal als single op ftp-sites opgeslagen tar.gz- of tar.bz2-bestanden .
VERWANT: Bestanden extraheren uit een .tar.gz- of .tar.bz2-bestand op Linux
mget * .c
Bestanden uploaden naar de FTP-server
Afhankelijk van de machtigingen die aan uw FTP-account zijn verleend, kunt u mogelijk bestanden uploaden (of "plaatsen") naar de server. Om een bestand te uploaden, gebruikt u de
zetten
opdracht. In ons voorbeeld uploadt de gebruiker een bestand met de naam
Sans.tar.gaj
naar de FTP-server.
zet Songs.tar.gz
Zoals je waarschijnlijk verwacht, is er een commando om meerdere bestanden tegelijk naar de FTP-server te plaatsen. Het heet
mput
(meerdere putten). Net als de
mget
commando deed,
mput
zal om een “y” of “n” bevestiging vragen voor het uploaden van elk bestand, één voor één.
Hetzelfde argument voor het plaatsen van sets bestanden in tar-archieven geldt voor het plaatsen van bestanden als voor het ophalen van bestanden. Onze gebruiker uploadt meerdere ".odt" -bestanden met het volgende commando:
mput * .odt
Directory's maken en wijzigen
Als uw gebruikersaccount op de ftp-server het toestaat, kunt u wellicht mappen aanmaken. De opdracht om dit te doen is
mkdir
. Voor alle duidelijkheid: elke directory die u maakt met de
mkdir
commando wordt aangemaakt op de ftp-server en niet op uw lokale computer.
Om mappen op de ftp-server te wijzigen, gebruikt u de
cd
opdracht. Wanneer u de
cd
commando het
ftp>
prompt zal niet veranderen om uw nieuwe huidige directory weer te geven. De
pwd
(print working directory) commando zal je huidige directory tonen.
Onze ftp-gebruiker maakt een map met de naam muziek, gaat naar die nieuwe map en bevestigt waar ze zijn door de
pwd
commando uploadt vervolgens een bestand naar die map.
mkdir muziek
cd music
pwd
zet songs.tar.gz
Om snel naar de bovenliggende directory van de huidige directory te gaan, gebruikt u de
cdup
opdracht.
cdup
Toegang tot de lokale computer
Om de directory op de lokale computer te wijzigen, kunt u de
lcd
commando op het
ftp>
prompt. Het is echter gemakkelijk om uit het oog te verliezen waar u zich bevindt in het lokale bestandssysteem. Een gemakkelijkere methode om toegang te krijgen tot het lokale bestandssysteem is om de
!
opdracht.
De
!
commando opent een shell-venster op de lokale computer. U kunt alles in deze shell doen wat u kunt in een standaard terminalvenster. Als je typt
Uitgang
u keert terug naar de
ftp>
prompt.
Onze gebruiker heeft de
!
commando en ging een shell-venster op de lokale computer in. Ze hebben een
ls
commando om te zien welke bestanden aanwezig zijn in die map en typ vervolgens
Uitgang
om terug te keren naar de
ftp>
prompt.
!
ls
Uitgang
Bestanden hernoemen
Om bestanden op de FTP-server te hernoemen, gebruikt u de
hernoemen
opdracht. Hier hernoemt onze FTP-gebruiker een bestand met
hernoemen
en gebruikt vervolgens de
ls
commando om de bestanden in de directory weer te geven.
hernoemen songs.tar.gz rock_songs.tar.gz
ls
Bestanden verwijderen
Om bestanden op de FTP-server te verwijderen, gebruikt u de
verwijderen
opdracht. Om meerdere bestanden tegelijk te verwijderen, gebruikt u de
kijk naar
opdracht. U wordt gevraagd om een “y” of “n” bevestiging voor het verwijderen van elk bestand.
Hier heeft onze FTP-gebruiker de bestanden opgesomd om hun namen te zien en er vervolgens een gekozen om te verwijderen. Ze besluiten vervolgens om ze allemaal te verwijderen.
ls
γκ.ο.
μδε afname * .ο
Met behulp van de sftp-opdracht
Lezers die bekend zijn met het IP-adressysteem zullen hebben gemerkt dat het 192.168-adres van de FTP-server dat in de bovenstaande voorbeelden wordt gebruikt een intern IP-adres is, ook wel een privé IP-adres genoemd. Zoals we aan het begin van dit artikel waarschuwden, is de
ftp
commando mag alleen worden gebruikt op interne netwerken.
Als u verbinding wilt maken met een externe of openbare FTP-server, gebruikt u de
sftp
opdracht. Onze gebruiker gaat verbinding maken met een SFTP-account genaamd
demo
op de openbaar toegankelijke FTP-server op
test.trebex.net
.
Wanneer ze verbinding maken, worden ze geïnformeerd dat de verbinding tot stand is gebracht. Ze worden ook geïnformeerd dat de authenticiteit van de host niet kan worden geverifieerd. Dit is normaal voor de eerste verbinding met een nieuwe host. Ze drukken op "y" om de verbinding te accepteren.
Omdat de accountnaam van de gebruiker (
demo
) is doorgegeven op de opdrachtregel, wordt niet om de gebruikersnaam van de gebruikersaccount gevraagd. Ze worden alleen om het wachtwoord gevraagd. Dit wordt ingevoerd, geverifieerd en geaccepteerd en ze krijgen de
sftp>
prompt.
sftp [email protected]
De FTP-opdrachten die we hierboven hebben beschreven, werken precies hetzelfde in een SFTP-sessie, met de volgende uitzonderingen.
-
Gebruik om een bestand te verwijderen
rm(FTP gebruiktverwijderen) -
Gebruik om meerdere bestanden te verwijderen
rm(FTP gebruiktkijk naar) -
Gebruik om naar de bovenliggende map te gaan
cd ..(FTP gebruiktcdup)
Onze gebruiker heeft een paar commando's gebruikt in hun SFTP-sessie. Ze hebben gebruik
ls
om de bestanden weer te geven, en
cd
om naar de pub-directory te gaan. Ze hebben de
pwd
om de werkdirectory af te drukken.
Er zijn met name andere opties om bestanden in de Linux-wereld over te dragen
scp
(
beveiligde kopie
), maar we hebben ons hier gericht op FTP en SFTP. Gebruikt in de van toepassing zijnde scenario's, zullen deze twee opdrachten u en uw behoeften op het gebied van opslag en ophalen van bestanden goed van pas komen.