Le blog du petit geek malin

;-)

Accéder à un serveur FTP à travers une connexion SSH


Pour faire du ftp à travers un tunnel SSH, il y a la méthode "officielle" qui utilise la prise en charge de ce type de tunnel dans les versions suffisamments récentes de OpenSSH, selon la synthaxe suivante :

ssh -L ftp/local-port:remote-host:remote-port login@sshd-server -p sshd-port

Par exemple :
ssh -L ftp/21:192.168.1.50:21 user@my.home.net -p 2222

Mais pour ma part, avec mes serveurs SSH, je n'arrive pas à monter ce type de tunnel, j'obtiens cette erreur :
channel_setup_fwd_listener: getaddrinfo(ftp): no address associated with name
Could not request local forwarding.


Sinon, il y a la méthode astucieuse, qui consiste à utiliser le serveur SSH en proxy SOCKS dans son client FTP :

Etablir la connexion SSH avec le tunnel dynamique sur le port 8000 :
ssh -D 8000 user@my.home.net -p 2222

Dans le client FTP, configurer le proxy SOCKS : localhost:8000

Se connecter sur l'adresse réelle du serveur ftp : ftp 192.168.1.50

La connexion FTP passe alors intégralement (commandes et données) dans le tunnel SSH (dynamique) puisqu'utilisant le serveur SSH comme proxy.