A muito tempo que observava que o scp não funcionava enquanto existisse o arquivo ~/.bashrc. Como não uso o scp com muita freqüência, nunca me incomodei em renomear o .bashrc, enquanto o usava. Mas um dia destes resolvi pesquisar para entender os motivos do problema.
Em meio a discussões pela rede encontrei algumas informações que me pareceram mais razoáveis. Não encontrei nada no manual do scp, e nem muita coisa no manual do bash para poder confirmar, mas a os testes indicam que o caminho é este.
A questão está nas aplicações dos arquivos .bashrc/bashrc e .bash_profile/profile. Os primeiros (~/.bashrc e /etc/bashrc) são executados sempre que se faz um acesso remoto (ssh, rlogin, scp, …), onde é necessário autenticação. Já os outros dois (~/.bash_profile e /etc/profile), são executados em acesso à seções locais (login).
A menos que necessite de alguma configuração específica para os acessos remotos, você poderá renomear o seu .bashrc para .bash_profile, sem qualquer prejuízo, que o scp irá funcionar sem problemas
$ cd $ mv .bashrc .bash_profile
Um outra informação que encontrei na rede, a qual fiz apenas um teste simple, é que se o .bashrc, ou o bashrc, não emitirem nenhuma saída (echo ou qualquer outra saída ao console), o scp funcionará. Por isto, se for necessário usar o .bashrc, para fazer alguma configuração específica para acessos remotos: remova, comente ou redirecione todas as saídas dos comandos do seu .bashrc, para o limbo (>/dev/null).
!/bin/bash # alias kernel='cd /usr/src/linux; make menuconfig; make' alias rbash='source /root/.bashrc' alias dgrep='dmesg | grep ' #echo "~/.bash_profile" >>Saída comentada<< export LANG=en_US.UTF-8 export PATH=$PATH:/root/.bin