Linux 스포츠 사용자 - 원격 서버에 대한 pi로 SSH 키로 실행

Linux 스포츠 사용자 - 원격 서버에 대한 pi로 SSH 키로 실행

이 질문은 다음과 관련이 있습니다. 다른이전에 Raspberry Pi를 모션 센서로 작동시키는 것에 대해 질문이 있었는데, 모션이 감지되면 더 강력한 서버로 SSH를 시도합니다(더 강력한 서버는 스크립트를 통해 추가 처리를 수행합니다). 이것이 내가 한 일입니다:

  • Raspberry Pi에 Linux Sports 앱을 설치했습니다.
  • ssh-keygen라즈베리 파이에서도 사용한 뒤, 라즈베리 ssh-copy-id파이가 ssh비밀번호를 입력하지 않고도 서버에 접속할 수 있도록 공개키를 좀 더 강력한 서버에 복사해 두곤 했습니다.
  • motion.conf파일 에는 on_motion_detectedRaspberry Pi가 동작을 감지할 때 이벤트에 대한 줄이 있으며 해당 줄에는 다음과 같은 내용이 있습니다.

    SSH[이메일 보호됨]'/exec/일부/스크립트/여기'

  • 그러나 더 강력한 서버의 스크립트는 모션 데몬이 원격 서버에서 허용하는 ssh-keygen을 실행하는 사용자(pi)가 아닌 사용자 "motion"으로 실행되기 때문에 실행되지 않습니다. 나는 다음과 같은 이유로 이것을 알고 있습니다:

  • on_motion_detected명령을 다음과 같이 변경하면 :

    on_motion_Detected 에코 hello_world 벽 |

    명령이 실행되고 SSH를 통해 Raspberry Pi에 연결된 모든 터미널에서 해당 명령이 표시됩니다.

  • 또는 on_motion_Detected 라인이 아닌 Raspberry Pi의 명령줄(사용자 "pi"로)에서 실행하는 경우에도 서버에 의해 트리거됩니다.ssh [email protected] '/exec/some/script/here'

따라서 문제는 "모션" 사용자가 더 강력한 서버로 SSH를 시도할 때 Raspberry Pi의 운영 체제에 "pi" 사용자의 키를 "사용"하도록 어떻게 지시할 것인가입니다 on_motion_detected.

답변1

한 가지 옵션은 SSH 키를 pi한 사용자 에서 motion다른 사용자로 전송하는 것입니다.

(가정 사용자가 pimotion이고 이라고 /home/pi가정 /home/motion)

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

설명하다:

지정하지 않으면 ssh 명령은 키 입력을 사용합니다 ~/.ssh/id_*. 여기서 는 ~/명령을 실행하는 사용자의 홈 디렉터리입니다. 따라서 Motion 사용자로 실행하면 키 입력 대신 키 입력을 ssh사용하려고 시도합니다 ./home/motion/.ssh//home/pi/.ssh

답변2

Raspberry Pi에서 Motion을 실행하면 Motion의 홈 디렉터리가 다음과 같습니다.

/var/lib/motion

이미지 저장을 활성화하고 명령을 실행하여 이것을 발견했습니다.

on_picture_save echo $HOME >> /tmp/home.txt

/etc/motion/motion.conf에서 결과를 확인하세요.

.ssh 파일을 /var/lib/motion/.ssh/에 배치하여 연결을 활성화합니다.

관련 정보