Mensagem de erro ao usar scp sobre ssh

Mensagem de erro ao usar scp sobre ssh

Não tenho certeza do que está acontecendo, mas ultimamente não consigo copiar nenhum arquivo para o local do meu servidor remoto. Tentei o rsync local e recebi a seguinte mensagem de erro:

 mut@mylocalcomputer:~$ rsync -chavzP --stats [email protected]:/home/users/mut/thedirectoryIneed /User/mut/
 [email protected]'s  password: 
 protocol version mismatch -- is your shell clean?
 (see the rsync man page for an explanation)
 rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync  /compat.c(61) [receiver=2.6.9] 

Então eu usei o rsync e segui as instruções para diagnosticar o problema com o seguinte (entrada na linha de comando local):

ssh [email protected] /bin/true > out.dat

insira a senha e não receba nada de volta - apenas gerou um novo prompt).

(2) Então tentei scp, e toda vez que scpsaio sshdo local, recebo a seguinte saída exibindo tipo de arquivo, tamanho, permissões e nome de arquivo, mas nada mais:

 C0644 183 fileineedfromremoteserver.cpp

mas o arquivo não é copiado (ou pelo menos não consigo encontrá-lo em nenhum lugar do meu computador).

Alguma sugestão sobre qual pode ser o problema ou o que mais eu poderia tentar?

nota: Meu local é o terminal CLI padrão no OSX (BSD) e o servidor é GNU linux. Nunca tive problemas antes de copiar arquivos do servidor, e a única coisa que consigo pensar que mudou desde então é que em algum momento digitei o comando para gerar uma chave SSH local (em uma tentativa fracassada de tentar e automatizar meu login no servidor sem precisar digitar minha senha todas as vezes). Duvido que isso tenha algo a ver com isso.

Responder1

Já faz muito tempo que não vejo esse erro, mas o IIRC, quando o vi, foi devido a algo no arquivo rc do shell errado que estava gerando texto durante o login.

Os arquivos em questão são específicos do shell que você está usando, mas veja como você pode corrigi-lo para o bash.

Enquanto estiver conectado à conta no sistema remoto (mambo.m66.com), execute o seguinte: . .bashrc(observe que o primeiro ponto não é um erro de digitação). Se você verqualquersaída ao executar esse comando, você deve mover o comando dentro do arquivo .bashrc para .bash_profile.

abydos:~ jonv$ touch sourcefile
abydos:~ jonv$ echo 'echo This should work.' > .bash_profile
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
abydos:~ jonv$ echo 'echo This should NOT work.' > .bashrc
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync/compat.c(61) [receiver=2.6.9]

Existem muitos recursos na rede se você quiser ler mais sobre isso. Você pode pesquisar por '.bashrc vs .bash_profile' e obter bastante.

informação relacionada