Eu não acho que haja uma maneira fácil de fazer isso, se é que existe uma maneira. O FTP usa várias conexões TCP e apenas uma delas tem uma porta fixa. As conexões para a transferência de dados são criadas dinamicamente e a porta (e também o endereço IP na maioria dos casos) usada nessas conexões de dados é trocada dentro da conexão de controle. Se as conexões de dados e controle são simplesmente encaminhadas através de algum túnel, então as informações sobre as alocações de porta não refletem as portas reais após o túnel, ou seja, é necessária uma reescrita dos comandos e respostas FTP específicos pelo túnel. Mas, o SSH apenas encaminha conexões e não reescreve nada no nível do aplicativo, conforme necessário para o FTP.
Seria melhor usar um protocolo menos complexo, ou seja, um protocolo sem essas alocações de portas dinâmicas. Usando SFTP, por exemplo, em vez de FTP / FTPS para transferência de dados ajudaria. Claro, isso requer um servidor correspondente na outra ponta e um servidor FTP normal não faria isso.