Verifique se você não possui scripts de inicialização no seu shell que transmitem dados para o terminal. Isso pode estar em .bashrc
ou .profile
Quando o scp se conecta ao host remoto, ele espera ver os cabeçalhos do servidor SSH seguidos por um fluxo de stdin aberto.
Se o seu .profile no host remoto exibir qualquer saída, isso fará com que o scp falhe silenciosamente. Se este for o caso, você pode querer remover isso ou colocar uma condição de guarda para garantir que nada seja impresso na ausência de um dispositivo de controle. Veja o comando tty
para isso.