Um dos seus scripts de login (.bashrc / .cshrc / etc.) provavelmente está enviando dados para o terminal (quando não deveria ser). Isso está causando ssh para erro quando ele está se conectando e se preparando para copiar, uma vez que começa a receber dados extras que não espera. Remova a saída gerada nos scripts de inicialização.
Você pode verificar se o seu terminal é interativo e só envia texto usando o seguinte código em um bashrc. Algo equivalente existe para outras shells também:
if shopt -q login_shell; then
[any code that outputs text here]
fi
ou, alternativamente, assim, já que o parâmetro especial -
contém i
quando o shell é interativo:
if echo "$-" | grep i > /dev/null; then
[any code that outputs text here]
fi
Para mais informações, consulte: rsync via ssh do linux para a incompatibilidade de protocolo do windows sbs 2003
Para diagnosticar isso, certifique-se de que o seguinte é a saída que você obtém quando envia ssh para o host:
USER@HOSTNAME's password:
Last login: Mon Nov 7 22:54:30 2011 from YOURIP
[USER@HOSTNAME ~]$
Se você receber novas linhas ou outros dados, você sabe que uma saída extra está sendo enviada. Você pode renomear seu .bashrc / .cshrc / .profile / etc. arquivos para outra coisa, para que eles não produzam saída extra. Claro que ainda existem arquivos de sistema que podem causar isso. Nesse caso, verifique com seu sysadmin que os arquivos do sistema não geram dados.