iPhoneからRaspberryPiを操作できるCommand Pi

Command Pi(100円)というiOSアプリでiPhoneからRaspberry Piを操作できるので試してみた。

現在できる命令はシャットダウンと再起動だけ。CPU使用量やメモリ使用量も見れる。システムの温度は多分 /opt/vc/bin/vcgencmd measure_temp を使っていると思う(Show RPI’s Temperature with a command)。Raspberry Piに接続すると以下のような画面がiPhoneに表示される。

Command Pi

命令や情報取得はSSHのパスワード認証による接続で行っているので、Raspberry Pi側でSSHサーバを起動して、Command Pi側でIPアドレスとユーザ名、パスワードを設定する必要がある。SSHのポートを変えている場合はIPアドレスの設定項目を IPアドレス:port というようにすれば接続できた。実行しているコマンドの都合上、接続するアカウントはsudoがパスワードなしで実行できないといけない。

RaspbianならSSHサーバはパッケージからインストールできる。

apt-get install ssh

パスワード認証を有効にするには /etc/ssh/sshd_configPasswordAuthentication yes になっていることを確認する。

/etc/ssh/sshd_config
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

なっていなかったら変更して再起動する。

/etc/init.d/ssh restart

Raspberry Piを自宅サーバにしているのでデフォルトは公開鍵認証でローカルネットワークからのみパスワード認証を使うようにしてみた。

/etc/ssh/sshd_config
Match Address 192.168.*.*
  PasswordAuthentication yes

Match ブロックを使うと特定の接続に対して設定を変えることができる。注意するところは Match ブロックの終了を明示的に記述できない点。インデントは飾りでインデントが終わったからといって Match ブロックが終了すると解釈してくれるわけじゃないので Match ブロックはファイルの最後に記述すべき。

Command Piの仕組みはSSHでLinuxサーバにつないでるだけなので厳密なRaspberry PiチェックをしていなければRaspberry Piじゃなくても動くと思う、試していないけど。あとは任意のコマンドを送信できるようになると嬉しいんだけどな。