scp exec request falhou no canal 0

10

Estou tentando arquivos SCP de um computador para outro, mas recebo

exec request failed on channel 0".

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

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

Este é o comando que eu usei:

scp /filelocation/file user@hostname:/folderlocation

Eu 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 tem o comando SCP.

    
por balloffire 02.02.2011 / 18:46

2 respostas

0

Para ver o arquivo .bashrc (e outros arquivos que começam com um ponto), você precisa 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 funciona, 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 SSL.

Poderia ser tão simples quanto enviar seqüências de escape especiais para definir o título da sua 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
    
por 22.09.2016 / 01:26
0

Concordo com o strobelight de que esse erro geralmente é gerado por arquivos de inicialização bash do .bashrc (e outros).

No entanto, existem algumas formas básicas de testar shells interativos: guia avançado de scripts bash referência, referência serverfault .

O que eu mais tenho visto é testar $ PS1 para quando fazer a saída:

if [ "$PS1" ]; then
    echo "some message"
fi
    
por 24.02.2018 / 08:38

Tags