この質問は以下に関連しています。二つ その他以前はRaspberry Piをモーションセンサーとして機能させることについて質問がありましたが、モーションが検出されるとより強力なサーバーとしてSSHを試みます(より強力なサーバーはスクリプトを介して追加の処理を実行します)。これが私がしたことです:
- Raspberry PiにLinux Sportsアプリをインストールしました。
ssh-keygen
ラズベリーパイでも使用した後、ラズベリーssh-copy-id
パイがssh
パスワードを入力しなくてもサーバーに接続できるように公開鍵をもう少し強力なサーバーにコピーしておいた。motion.conf
ファイルには、on_motion_detected
Raspberry Piがアクションを検出したときにイベントの行があり、その行には次の内容があります。SSH[Eメール保護]'/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
1つのオプションは、SSHキーをpi
あるユーザーからmotion
別のユーザーに転送することです。
(家庭ユーザーがおよびpi
でmotion
あると/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/に配置して接続を有効にします。