Sua abordagem não está levando em conta que, ao contrário de outros protocolos comuns, o FTP usa ambos porta 20 e porta 21 sobre TCP por padrão .
O termo passivo refere que o protocolo é ligeiramente mais bem comportado que as implementações iniciais.
Aqui está um link:
A porta 20 / TCP é usada para dados e a porta 21 / TCP para comandos.
No Unix, também portas privilegiadas < 1024, só pode ser vinculado por root.
Então você faz:
sudo ssh -f -N -L 20:130.89.148.12:20 -L 21:130.89.148.12:21 [email protected]
Dessa forma, você não fornece nenhuma porta extra e só a usa com
ftp -p localhost
ou se você não tiver raiz:
ssh -f -N -L 2120:130.89.148.12:20 -L 2121:130.89.148.12:21 [email protected]
e, em seguida, use:
ftp -p -P 2121 localhost
Do ftp link
-p modo passivo
-P porta
ou se com uma versão de ftp
que não suporta -P
(Debian 9 / Ubuntu 16.04):
ftp -p localhost 2121
Também deixarei um link para "Encaminhamentos de porta locais e remotos de encapsulamentos SSH explicados"
Por fim, aconselho não usar root no sistema remoto para conexões ssh. root é uma conta muito poderosa e só deve ser reservada para administração do sistema.
Além disso, em muitos logins modernos ssh, o login remoto vem desativado por padrão.
Por que o login root via SSH é tão ruim que todos recomendam desativá-lo?