Existem muitas soluções possíveis para isso:
- Você pode configurar
sudo
para não exigir tty:RequireTTY
in/etc/sudoers
- Você pode forçar a alocação tty na linha de comando nesses casos específicos, onde você precisa:
ssh -tt host command
- Você pode informar a
scp
para não alocar o TTY pela opção de linha de comando-T
ou-o RequestTTY=no
:scp -T file host:path/
ouscp -o RequestTTY=no file host:path/
As razões pelas quais isso acontece já estão explicadas. Você estraga o protocolo binário por caracteres de controle TTY e vice-versa.