O que poderia estar fazendo com que a mensagem “solicitação de execução falhou no canal 0” apareça

9

Estou tentando enviar um comando ssh de forma não interativa para um proxy do servidor de automação da HP e, embora eu possa ssh entrar e inseri-lo interativamente perfeitamente, sempre recebo a mensagem "solicitação de execução falhou no canal 0" ao tentar para enviar o comando de forma não interativa. Existe alguma coisa que eu poderia mudar no lado do cliente para me permitir enviar o comando? Não há muito que eu possa mudar no lado do servidor.

Aparentemente,épossível,maseunãoconsigotrabalharnaminhainstalação(vejaolink: link )

Caso isso ajude, aqui estão os detalhes da versão para o meu sistema operacional e a versão do openssh:

OpenSSH_7.2p2, OpenSSL 1.0.2j-fips  26 Sep 2016

NAME="openSUSE Leap"
VERSION="42.2"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.2"
PRETTY_NAME="openSUSE Leap 42.2"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.2"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

Obrigado

    
por lacrosse1991 27.01.2017 / 22:25

3 respostas

0

Você tem alguma coisa no seu shell rcfile (.bashrc, .zshrc, etc) ou .login, .profile, etc que está verificando para garantir que o shell seja interativo antes de ser executado? Se não, é aí que está o seu problema.

Meu conselho é renomear temporariamente coisas como .profile, .bashrc, .login e .bash_profile para serem .profile.off (e assim por diante) e ver se o problema ainda existe.

Se isso não acontecer, você precisará de algum código no rcfile incorreto que verificará se o shell é interativo antes de ser executado.

    
por 20.06.2017 / 19:10
0

Normalmente, porque o cliente está solicitando um tty e o servidor está recusando. Tente NÃO solicitar tty com um ssh -T ......

    
por 19.04.2018 / 19:16
0

O servidor permite que você abra um shell interativo, mas não a chamada do sistema exec para executar um comando sem um pseudo-terminal. Use a opção -t da seguinte maneira para forçar a alocação de pseudo-terminais.

ssh [email protected] -p 8022 -t show version

Como alternativa, use expect para criar scripts de uma interação com o terminal remoto. Veja esta resposta para um exemplo.

Referências:

por 01.12.2018 / 20:00