Datamaskin A (antatt at ip er 44.44.44.44) kan ftp verten 130.89.148.12.
ftp 130.89.148.12 Connected to 130.89.148.12. 220 ftp.debian.org FTP server Name (130.89.148.12:debian8): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
Datamaskin B (min lokale pc) kan ikke ftp verten 130.89.148.12. La oss bygge en ssh-tunnel med ssh-kommando på denne måten:
ssh -L -f -N localhost:2121:130.89.148.12:21 [email protected]
ssh-tunnelen mellom min lokale pc og datamaskin A (44.44.44.44) ble koblet til etter passord for å logge inn på 44.44.44.44.
Så for å legge inn kommandoen på min lokale PC-konsoll:
ftp localhost:2121 ftp: localhost:2121: Name or service not known
Hva er det med ssh-tunnelen min?
Tenk å chexum, den rette ftp-kommandoen er ftp localhost 2121 Men nytt problem.
Kommentarer
Svar
Din tilnærming tar ikke hensyn til det i motsetning til andre vanlige protokoller bruker FTP både port 20 og port 21 over TCP som standard .
Uttrykket passiv refererer til at protokollen oppleves bedre enn de første implementeringene.
Her er en lenke:
http://www.slacksite.com/other/ftp.html
Port 20 / TCP brukes til data, og port 21 / TCP for kommandoer .
I Unix kan også privilegerte porter < 1024 bare være bundet av root.
Så gjør du det:
sudo ssh -f -N -L 20:130.89.148.12:20 -L 21:130.89.148.12:21 [email protected]
På denne måten gir du ingen ekstra port, og bruker den bare med
ftp -p localhost
eller hvis du ikke har root:
ssh -f -N -L 2120:130.89.148.12:20 -L 2121:130.89.148.12:21 [email protected]
og deretter bruker:
ftp -p -P 2121 localhost
Fra mann ftp http://linux.die.net/man/1/ftp
-p passiv modus
-P-port
eller hvis med en versjon av ftp
som ikke støtter -P
(Debian 9 / Ubuntu 16.04):
ftp -p localhost 2121
Jeg vil også legge igjen en lenke til «SSH tunneler lokal og ekstern videresending av port forklart»
Til slutt vil jeg råde deg til å ikke bruke root i det eksterne systemet for ssh-tilkoblinger. root er en veldig kraftig konto, og bør bare reserveres for systemadministrasjon.
Videre blir ssh ekstern pålogging som root deaktivert som standard i mange moderne Linux.
Hvorfor er root-pålogging via SSH så ille at alle anbefaler å deaktivere det?
Kommentarer
- Hva? Datatilkoblingen bruker ikke port 20; den bruker en tilfeldig port > 1024. Også
ftp
ser ikke ut til å ha et-P
-alternativ, i det minste ikke på Ubuntu 16.04. Dermed kan du ikke videresende ftp med ssh siden du ikke ' ikke vet hvilken tilfeldig port som blir valgt når dataforbindelsen er opprettet (og du får en annen for hver fil som overføres eller hver gang duls
). - Nei, serveren lytter også til en kortvarig port. Siden den kan betjene flere klienter, og hvis den brukte port 20 for hver av dem, hadde den ingen anelse om hvilken som tilsvarte hvilken kontrolløkt.
- Jeg skrev ut FTP RFC på prikken min. matriseskriver og studerte den da jeg var 16. Jeg fant ut at du kan utstede en PASV-kommando til en server, deretter en PORT-kommando til den andre serveren med IP-adresse og portnummer fra PASV-svaret fra den andre serveren og få dem å sende filen direkte fra en server til den andre i stedet for å måtte laste ned og laste den opp selv over mitt 28,8 kbps modem. Senere kom det et program kalt FXP som kunne gjøre det, og jeg skrev også min egen FTP-serverprogramvare for WinNT som sprengte buksene av noe annet. Gå og se på et PASV-svar selv.
- Du er forvirret. Den lytter på port 21, ikke 20. Du kobler til serveren på port 21, og deretter utsteder du en PORT-kommando og forteller serveren hvilken IP og portnummer den skal koble til, eller en PASV-kommando, i så fall begynner den å lytte etter dataforbindelsen på en kortvarig port, og spesifiserer hvilken port som er i svaret. Fra et sitat pasv-kommando til ftp.gnu.org: " 227 Gå inn i passiv modus (208,118,235,20,96,222) ". Merk at serveren lytter på port 96,222 eller 24,798.
- Hvorfor ikke redigere den slik at den er riktig?
ftp(1)
-siden for hvordan du spesifiserer en port. Det ' er vanligvis atskilt med et mellomrom (ikke et kolon), eller som et-p
-alternativ. Du ' Jeg må også sørge for å bruke passiv ftp, så sjekk manualen først.