A solicitação de exec scp falhou no canal 0


11

Estou tentando arquivos SCP de um computador para outro, no entanto,

solicitação executiva falhou no canal 0 ".

No entanto, quando eu uso o SSH, posso acessar a máquina sem problemas. Estou usando a função SCP no Cygwin, se isso ajudar.

O que encontrei ao pesquisar on-line falou sobre o arquivo ".bashrc", mas o único que encontrei foi "bash.bashrc".

Este é o comando que eu usei:

scp /filelocation/file user@hostname:/folderlocation

Também tentei com o endereço IP em vez do nome do host, mas tenho o mesmo resultado.

Eu verifiquei se o site remoto possui o comando SCP.

Respostas:


0

Para ver o arquivo .bashrc (e outros arquivos começando com um ponto), é necessário fazer

ls -a

A solução simples é renomear os arquivos .profile, .bashrc, .login, .bash_profile para que eles não sejam incluídos. Estes são conhecidos como arquivos de inicialização do shell.

Se o seu scp agora funcionar, a resposta está em um desses arquivos.

Basicamente, um dos arquivos de inicialização do shell está enviando a saída de volta e isso atrapalha a negociação do SSL.

Pode ser tão simples quanto enviar seqüências de escape especiais para definir o título da janela. Outro culpado é o comando stty.

Você deseja cercar a saída para o terminal somente quando estiver logado com

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands 
    # or other special escape sequences to terminal
fi

0

Concordo com o strobelight que esse erro geralmente ocorre na saída de arquivos de inicialização do bash .bashrc (e outros).

Porém, existem algumas maneiras integradas do bash de testar shells interativos: referência avançada ao guia de scripts de bash , referência à falha do servidor .

O que eu vi com mais frequência é testar o $ PS1 para saber quando executar a saída:

if [ "$PS1" ]; then
    echo "some message"
fi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.