Este error se nos puede presentar cuando tratamos de ejecutar comandos ssh de forma desatendida, por ejemplo en scripts, crontab o a través de nohup/segundo plano.
En mi caso efectivamente era por ejecutar un tunel SSH con nohup y en background. Al intentar ejecutarlo recibía el siguiente error:
Pseudo-terminal will not be allocated because stdin is not a terminal.
La solución es sencilla, tenemos que indicar al comando SSH que lo queremos ejecutar sin tty, para ello le pasamos los parámetros «-t -t»:
$ ssh -t -t foo@bar -L 123:bar:124