Počítač A (předpokládá se, že ip je 44.44.44.44) může hostitele ftp 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. 

Počítač B (můj místní počítač) nemůže ftp hostitele 130.89.148.12. Pojďme s vytvořit tunel ssh pomocí příkazu ssh takto:

ssh -L -f -N localhost:2121:130.89.148.12:21 [email protected] 

Tunel ssh mezi mým místním počítačem a počítačem A (44.44.44.44) byl připojen po heslo pro přihlášení do 44.44.44.44.
Poté zadejte příkaz na místní konzole počítače:

ftp localhost:2121 ftp: localhost:2121: Name or service not known 

Co se děje s mým tunelem ssh?

Mysli na chexum, správný příkaz ftp je ftp localhost 2121 Ale nový problém. zde zadejte popis obrázku

Komentáře

  • Zkontrolujte svou ftp(1) stránku, jak určit port. Je ' s obvykle odděleno mezerou (nikoli dvojtečkou) nebo jako -p možnost. ' Také se musíte ujistit, že používáte pasivní ftp, proto si nejprve přečtěte příručku.
  • Neukládejte text jako obrázky.

Odpověď

Váš přístup to nebere v úvahu na rozdíl od jiných běžných protokolů používá FTP oba port 20 a port 21 přes TCP ve výchozím nastavení .

Termín pasivní označuje, že protokol se mírně chová lépe než původní implementace.

Zde je odkaz:

http://www.slacksite.com/other/ftp.html

Pro data se používá port 20 / TCP a pro příkazy port 21 / TCP .

V systému Unix, také privilegované porty < 1024, lze vázat pouze rootem.

Takže buď vy:

sudo ssh -f -N -L 20:130.89.148.12:20 -L 21:130.89.148.12:21 [email protected] 

Tímto způsobem neposkytujete žádný další port a používáte jej pouze s

ftp -p localhost 

nebo pokud nemáte root:

ssh -f -N -L 2120:130.89.148.12:20 -L 2121:130.89.148.12:21 [email protected] 

a pak použijte:

ftp -p -P 2121 localhost 

z man ftp http://linux.die.net/man/1/ftp

-p pasivní režim
-P port

nebo pokud s verzí ftp, která nepodporuje -P (Debian 9 / Ubuntu 16.04):

ftp -p localhost 2121 

Nechám také odkaz na „Vysvětlení místního a vzdáleného přesměrování tunelů SSH tunelů“

http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html

Nakonec bych doporučil nepoužívat root ve vzdáleném systému pro připojení ssh. root je velmi silný účet a měl by být vyhrazen pouze pro správu systému.

Kromě toho je v mnoha moderních systémech Linux ssh vzdálené přihlášení jako root ve výchozím nastavení zakázáno.

Proč je přihlášení rootem pomocí SSH tak špatné že každý doporučuje zakázat to?

Komentáře

  • Co? Datové připojení nepoužívá port 20; používá náhodný port > 1024. Zdá se, že ftp nemá možnost -P, přinejmenším ne v Ubuntu 16.04. Proto nemůžete přeposílat ftp pomocí ssh, protože nevíte, jaký náhodný port bude zvolen při navázání datového připojení (a pro každý přenesený soubor nebo každý dostanete jiný čas ls).
  • Ne, server také poslouchá na dočasném portu. Musí, protože může obsluhovat více klientů, a pokud by pro každého z nich použil port 20, nemělo by tušení, který z nich odpovídá které kontrolní relaci.
  • Na mé tečce jsem vytiskl FTP RFC maticová tiskárna a studoval jsem to, když mi bylo 16. Přišel jsem na to, že můžete vydat příkaz PASV na jeden server, pak příkaz PORT na druhý server s adresou IP a číslem portu z odpovědi PASV z druhého serveru a získat je poslat soubor přímo z jednoho serveru na druhý místo toho, abych si jej musel stáhnout a nahrát sám přes svůj modem s rychlostí 28,8 kb / s. Později vyšel program s názvem FXP, který to dokázal, a také jsem napsal svůj vlastní serverový software FTP pro WinNT, který odfoukl kalhoty cokoli jiného. Podívejte se sami na odpověď PASV.
  • Jste zmatení. Naslouchá na portu 21, ne 20. Připojíte se k serveru na portu 21 a poté vydáte příkaz PORT, který serveru sdělí, k jaké IP a číslu portu by se měl připojit, nebo příkaz PASV, v takovém případě začne poslouchat datové připojení na dočasném portu a určuje, který port je v odpovědi. Od nabídky pasv k příkazu ftp.gnu.org: " 227 Vstup do pasivního režimu (208,118,235,20,96,222) ". Server naslouchá na portu 96 222 nebo 24 798.
  • Proč to neupravit tak, aby bylo správné?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *