Transmite ou envia código legível por máquina para clientes ssh

2

Aqui está uma situação interessante. Eu tenho:

  • Uma caixa do Linux que é um sensor de movimento e pode executar comandos da linha de comando ao receber um evento de movimento (consulte o aplicativo de movimento do Linux).
  • Outra caixa do Linux que (eu gostaria de) é dedicada ao processamento adicional no caso de um movimento ser detectado.

A razão pela qual eu não quero que a primeira caixa Linux faça processamento adicional é que ela é insuficientemente fraca e não está convenientemente conectada a outros sistemas que eu gostaria de ativar.

Então, minha pergunta é: como eu transmito ou envio código legível por máquina daquela primeira caixa do Linux para outra caixa do Linux (ou qualquer cliente ssh) para acionar processamento adicional baseado no tipo de código? Eu tentei o comando de transmissão, mas por algum motivo, aparece como vazio nos clientes em vez de um código específico. Além disso, como habilitar a segunda caixa do Linux para atuar sobre o código? Deveria ser um cronjob ou algum tipo de ouvinte?

    
por Uzumaki Naruto 02.02.2014 / 00:30

3 respostas

1

Etapa 1

Primeiro, verifique se a caixa do sensor de movimento tem uma chave privada SSH configurada: ssh-keygen .

Etapa 2

Depois, verifique se a chave pública da chave privada está no computador mais potente. Você precisa colocá-lo no final de um arquivo com um nome como este:

 /home/${user}/.ssh/authorized_keys

NOTA: $ {user} é o nome do seu usuário no computador mais poderoso.

Além disso, verifique se no computador avançado, /home/${user}/.ssh/ tem as permissões 700 ( drwx------ ) e /home/${user}/.ssh/authorized_keys tem permissões 600 ( -rw------- ). Você pode usar o chmod para definir permissões.

$ chmod 700 /home/${user}/.ssh/
$ chmod 600 /home/${user}/.ssh/authorized_keys

Etapa 3

Em seguida, a partir do computador do sensor remoto, execute algo como:

$ ssh user@more-powerful-computer '/usr/local/bin/process_motion_event'
    
por 02.02.2014 / 01:14
0

Isso funcionou na minha rede

  rsh [email protected] mplayer /home/myuser/FF_Fanfare.mp3

É necessário que eu digite minha senha. Para contornar isso você pode usar perfis ssh ou chaves públicas, como o samiam notou.

    
por 02.02.2014 / 01:34
0

Você tem várias maneiras de conectar duas máquinas. Via ssh é um deles. A maneira mais fácil, no entanto, é usar NetCat (man nc) , que por padrão está disponível para muitos Unices.

Em outra caixa (box1):

nc -l -p 9999|while read line; do echo $line; done

Na caixa do sensor (caixa 0):

echo "sensor code"| nc box1 9999

Então box1 recebe todos os box0 de entrada enviados.

Se você quiser usar ssh :

Na caixa do sensor (caixa 0):

echo "sensor code" | ssh box1 'cat >> /path/sensor.log'

Em outra caixa (box1):

tail -f /path/sensor.log|while read line; do echo $line; done
    
por 02.02.2014 / 01:33