Usuário de movimento do Linux - execute-o como chave ssh como pi para o servidor remoto

2

Esta questão está relacionada com os dois a> outras perguntas que eu tive anteriormente, sobre permitir que o Raspberry Pi agisse como um sensor de movimento que tentará ssh em um servidor mais poderoso quando detecta movimento (quanto mais o servidor de energia, em seguida, fará processamento adicional através de um script). Então, aqui está o que eu fiz:

  • No Raspberry Pi, instalei o aplicativo de movimento do Linux
  • Eu também usei ssh-keygen no Raspberry Pi e depois usei ssh-copy-id copia chaves públicas para o servidor mais potente, para que o Raspberry Pi pudesse ssh para o servidor sem ter que digitar a senha.
  • No arquivo motion.conf , há uma linha para o evento on_motion_detected para quando o movimento for detectado pelo Raspberry Pi, nessa linha, eu tenho algo como:

    ssh [email protected] '/exec/some/script/here'

  • Mas o script no servidor mais poderoso nunca é executado porque o daemon de movimento está sendo executado como usuário 'motion', em vez do usuário (pi) que fez o ssh-keygen aceito pelo servidor remoto. Eu sei disso porque:

  • Se eu alterar o comando on_motion_detected para:

    on_motion_detected echo hello_world | wall

    este comando é executado e eu o vejo em todos os terminais que são ssh'd no Raspberry Pi

  • Ou, se em vez de na linha on_motion_detected, eu simplesmente executo ssh [email protected] '/exec/some/script/here' na linha de comando do Raspberry Pi (como usuário 'pi'), ele também é acionado pelo servidor.

Então a questão é, como dizer ao sistema operacional do Raspberry Pi para 'usar' a chave do usuário 'pi' quando o usuário 'motion' tenta ssh no servidor mais poderoso, nesse evento on_motion_detected ?

    
por Uzumaki Naruto 18.05.2014 / 02:41

1 resposta

3

Uma opção é mover as chaves ssh de pi user para motion user.

(supondo que o usuário doméstico de pi e motion seja /home/pi e /home/motion )

# mkdir /home/motion/.ssh/
# cp -a /home/pi/.ssh/* /home/motion/.ssh/
# chown -R motion /home/motion/.ssh/

Explicação:

Se não especificado, o comando ssh usa a chave em ~/.ssh/id_* , em que ~/ é o diretório inicial do usuário que executou este comando. Portanto, se você executar como usuário de movimento, ssh tentará usar a chave em /home/motion/.ssh/ , em vez disso, digite /home/pi/.ssh

    
por 18.05.2014 / 04:38