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[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別のユーザーに転送することです。

(家庭ユーザーがおよび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/に配置して接続を有効にします。

関連情報