Transmita o envíe código legible por máquina a clientes ssh

Aquí hay una situación interesante. Yo tengo:

  • Una caja de Linux que es un sensor de movimiento y puede ejecutar commands de línea de command al recibir un evento de movimiento (consulte la aplicación de movimiento de Linux).
  • Otra caja de Linux que (me gustaría) dedicada a un procesamiento adicional en el caso de que se detecte un movimiento.

La razón por la que no quiero que la primera caja de Linux haga un procesamiento adicional es porque tiene una potencia deplorable y no está convenientemente conectada a otros sistemas que me gustaría activar.

Entonces mi pregunta es, ¿cómo puedo transmitir o enviar un código legible por máquina desde la primera caja de Linux a otra caja Linux (o cualquier cliente ssh) para desencadenar un procesamiento posterior basado en el tipo de código? Probé el command de transmisión, pero por alguna razón, aparece como vacío en los clientes en lugar de un código específico. Además, ¿cómo habilito la segunda caja de Linux para actuar sobre el código? ¿Debería ser un cronjob o algún tipo de oyente?

Related of "Transmita o envíe código legible por máquina a clientes ssh"

Paso 1

Primero asegúrese de que la caja del sensor de movimiento tenga configurada una key privada SSH: ssh-keygen .

Paso 2

Luego, asegúrese de que la key pública para dicha key privada esté en la computadora más poderosa. Tienes que ponerlo al final de un file con un nombre como este:

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

NOTA: $ {usuario} es el nombre de su usuario en la computadora más poderosa.

Además, asegúrese de que en la poderosa computadora, /home/${user}/.ssh/ tenga los permissions 700 ( drwx------ ), y /home/${user}/.ssh/authorized_keys tenga permissions 600 ( -rw------- ). Puedes usar chmod para establecer permissions.

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

Paso 3

Luego, desde la computadora del sensor remoto, ejecute algo como:

 $ ssh user@more-powerful-computer '/usr/local/bin/process_motion_event' 

Esto funcionó en mi networking

  rsh myuser@192.168.1.100 mplayer /home/myuser/FF_Fanfare.mp3 

Me requirió escribir mi contraseña. Para evitarlo, puede usar perfiles ssh o keys públicas, como señaló el samiam.

Usted tiene varias forms de conectar dos máquinas. Via ssh es uno de ellos. Sin embargo, la manera más fácil es utilizar NetCat (man nc) que está disponible por defecto para muchos Unices.

En otro cuadro (casilla 1):

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

En la caja del sensor (box0):

 echo "sensor code"| nc box1 9999 

Entonces box1 recibe todos los envíos de box0 de input.

Si quieres usar ssh :

En la caja del sensor (box0):

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

En otro cuadro (casilla 1):

 tail -f /path/sensor.log|while read line; do echo $line; done