A razão para isso é que um dos scripts de login no servidor de destino está usando stty...
para configurar as características do terminal. O comando falha quando não tem um tty, ou seja, quando você se conecta com scp
.
A solução é proteger o stty
para que seja executado somente quando uma sessão interativa estiver presente. Existem várias maneiras de fazer isso; Aqui estão alguns exemplos de shells do tipo bash / sh:
Feio:
stty ... >/dev/null 2>&1
Funciona para mim:
test -n "$PS1" && stty ...
Recomendado em outros lugares no SE :
# Check for a bash login shell
case $- in
*i*) stty ... ;;
esac