Lordinateur A (supposé que lip est 44.44.44.44) peut ftp lhôte 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. 

Lordinateur B (mon ordinateur local) ne peut pas envoyer un ftp à lhôte 130.89.148.12. Construisons un tunnel ssh avec la commande ssh de cette façon:

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

Le tunnel ssh entre mon ordinateur local et lordinateur A (44.44.44.44) a été connecté après mot de passe pour se connecter à 44.44.44.44.
Puis pour saisir la commande sur ma console PC locale:

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

Quel est le problème avec mon tunnel ssh?

Pensez à chexum, la bonne commande ftp est ftp localhost 2121 Mais nouveau problème. entrez la description de limage ici

Commentaires

  • Consultez votre page de manuel ftp(1) pour savoir comment spécifier un port. Il ' est généralement séparé par un espace (et non par deux-points), ou comme une option -p. Vous ' Je devrai également vous assurer dutiliser le ftp passif, donc vérifiez dabord le manuel.
  • Veuillez ne pas placer le texte sous forme dimages.

Réponse

Votre approche ne tient pas compte du fait que contrairement aux autres protocoles courants, FTP utilise à la fois le port 20 et le port 21 sur TCP par défaut .

Le terme passif fait référence au fait que le protocole se comporte légèrement mieux que les implémentations initiales.

Voici un lien:

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

Le port 20 / TCP est utilisé pour les données et le port 21 / TCP pour les commandes .

Sous Unix, les ports privilégiés également < 1024, ne peuvent être liés que par root.

Donc soit vous faites:

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

De cette façon, vous ne donnez aucun port supplémentaire, et ne lutilisez quavec

ftp -p localhost 

ou si vous navez pas de racine:

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

puis utilisez:

ftp -p -P 2121 localhost 

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

-p mode passif
-P port

ou si avec une version de ftp qui ne prend pas en charge -P (Debian 9 / Ubuntu 16.04):

ftp -p localhost 2121 

Je vais également laisser un lien vers « Explication du transfert de port local et distant des tunnels SSH »

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

Enfin, je conseillerais de ne pas utiliser root dans le système distant pour les connexions ssh. root est un compte très puissant, et ne doit être réservé quà ladministration système.

De plus, dans de nombreux Linux modernes, la connexion à distance ssh en tant que root est désactivée par défaut.

Pourquoi la connexion root via SSH est si mauvaise que tout le monde conseille de le désactiver?

Commentaires

  • Quoi? La connexion de données nutilise pas le port 20; il utilise un port aléatoire > 1024. De plus, ftp ne semble pas avoir doption -P, du moins pas sur Ubuntu 16.04. Ainsi, vous ne pouvez pas transférer ftp avec ssh car vous ne savez pas quel port aléatoire sera choisi lorsque la connexion de données est établie (et vous en obtenez un différent pour chaque fichier transféré ou chaque fois que vous ls).
  • Non, le serveur écoute également sur un port éphémère. Il doit le faire car il peut servir plusieurs clients et sil utilisait le port 20 pour chacun deux, il naurait aucune idée de laquelle correspondait à quelle session de contrôle.
  • Jai imprimé le RFC FTP sur mon point imprimante matricielle et lai étudiée quand javais 16 ans. Jai compris que vous pouvez émettre une commande PASV vers un serveur, puis une commande PORT vers lautre serveur avec ladresse IP et le numéro de port de la réponse PASV de lautre serveur et les obtenir pour envoyer le fichier directement dun serveur à lautre au lieu davoir à le télécharger et à le télécharger moi-même via mon modem 28,8 kbps. Plus tard, un programme appelé FXP est sorti qui pourrait faire cela, et jai également écrit mon propre logiciel de serveur FTP pour WinNT qui a fait sauter le pantalon de tout le reste. Allez regarder une réponse PASV vous-même.
  • Vous êtes confus. Il écoute sur le port 21 et non sur 20. Vous vous connectez au serveur sur le port 21, puis émettez une commande PORT, indiquant au serveur à quelle adresse IP et numéro de port il doit se connecter, ou une commande PASV, auquel cas il commence à écouter la connexion de données sur un port éphémère, et spécifie le port qui se trouve dans la réponse. Depuis une commande quote pasv vers ftp.gnu.org: " 227 Entrée en mode passif (208,118,235,20,96,222) ". Notez que le serveur écoute sur le port 96222 ou 24798.
  • Pourquoi ne pas le modifier pour quil soit correct?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *