Geralmente TERMé passado do ambiente local, inalterado, para o ambiente remoto. Se você definir TERMno lado local ao invocar ssh, isso fará o que for necessário.
Por exemplo, se a extremidade remota tiver a descrição do terminal para rxvt(mas não rxvt-unicode), isso funcionaria bem o suficiente para as teclas de função etc.
Supondo que o bash ou algum shell seja compatível com POSIX, você pode fazer isso
TERM=rxvt ssh hospedeiro remoto
Fazer dessa maneira afeta apenas o sshcomando, não o ambiente local. Eu uso esse recurso para manipular máquinas típicas para as quais não há descrição screen.xterm-new. Dependendo da máquina remota, pode ou não haver um pacote adequado que possa ser instalado para o banco de dados completo do terminal . Alguns (como Solaris e FreeBSD) requerem a solução alternativa.
Leitura adicional:
/usr/share/terminfo/.