Ваша проблема в том, что клиент, который подключается к $ PORT, вероятно, не имеет ни малейшего представления о том, что он работает с tty с другой стороны, поэтому у вас возникнут проблемы с tty-специфическими "функциями", такими как ^ C /^ D / и т.д..и CRLF.
Вот почему
socat tcp-listen:1234 - | hexdump -C
telnet localhost 1234
[enter text]
будет показывать CRLF, а
ssh -t localhost "hexdump -C"
[enter text]
- чистые LF.Впоследствии вам, например, понадобится
ssh -t whateverhost "screen $TTYDEVICE"
tl; dr: netcat этого не сделает.