Como ativar o uso de comandos no host remoto usando ssh sem senha?

2

eu configurei para usar o ssh entre dois hosts sem senha.

O login ssh está funcionando bem, mas os comandos de execução falharam com o erro abaixo:

**isn't allowed to be executed with process or redirect controls.**

Comando simples usado:

ssh remo-tehost " echo \"\test\"  >> \"/home/alarmstest.log\" "

Rastreamento em execução que recebi:

debug1: Sending command:  echo "test"  >> "/home/alarmstest.log" 
debug2: channel 0: request exec confirm 1
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
debug2: channel 0: rcvd ext data 117

há sudosh no servidor remoto para o usuário usado usuário: x: 500: 500 :: / home / usuário: / usr / local / bin / sudosh authorized_keys do servidor remoto + chave dentro -rw ------- 1 usuário usuário 9092 13 dez 07:53 authorized_keys

    
por Charles nakhel 16.12.2014 / 10:25

2 respostas

0

problema devido à permissão no diretório inicial:

diretório home ~, ~ / diretório .ssh e ~ / .ssh / authorized_keys no host remoto devem ser graváveis somente pelo usuário usado 700 ou 755, 775 não funcionará.

arquivo de chave privada (no host local) neto para ser legível e gravável somente pelo usuário usado: rw ——-, 600.

    
por 01.09.2017 / 04:15
0

Isso parece ser um problema com citações. Basta lembrar que sempre que você quiser executar um comando shell sobre o ssh, ele será recebido pelo shell remoto (por exemplo, Bash) como /bin/bash -c <command-line> . Você precisa ter apenas um par de citações:

ssh remo-tehost "echo test  >> /home/alarmstest.log"

Este par é importante para impedir que o shell local, ou seja, aquele que você está usando para executar a linha de comando, interprete os parâmetros.

    
por 18.12.2014 / 09:01