RaspberryPiで遊んでいるが、RaspberryPi上でvimでスクリプト書くのはちょっとCPUが足りない感じになる(NeoComplecacheとか)。なので、メインマシン上でスクリプトを書き、SSH経由のrsyncでスクリプトを同期して実行としている。
SSH経由でrsyncを行う
参考:rsync + ssh でファイルの同期をとる | レンタルサーバー・自宅サーバー設定・構築のヒント
$ rsync -auz -e ssh [Macのディレクトリ] [リモートのユーザ名]@[リモードのホスト名]:[リモーロディレクトリ]
リモートの削除も行う場合
$ rsync -auz -delete -e ssh [Macのディレクトリ] [リモートのユーザ名]@[リモードのホスト名]:[リモーロディレクトリ]
例)
$ rsync -auz -e ssh /Users/j74th/Develop/DevRaspian pi@192.168.1.100:/home/pi/DevRaspian
これを、sync.shなどにしておいて、同期する場合に実行させていた。
SSHで公開鍵認証を行う
毎回行っていると、パスワードの入力が面倒になる。よって、公開鍵認証を行う。意外と簡単だった。
まず、クライアントで鍵を生成する。
■ホスト(Mac)での作業 $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/j74th/.ssh/id_rsa): /Users/j74th/.ssh/raspi ←保存先を指定 Enter passphrase (empty for no passphrase): ←暗号化に用いるパスフレーズを聞かれるので適当に入力する Enter same passphrase again: ←もう一度 Your identification has been saved in /Users/j74th/.ssh/raspi. Your public key has been saved in /Users/j74th/.ssh/raspi.pub. The key fingerprint is: a0:07:3b:2f:20:24:f7:b7:e3:12:56:2a:d8:19:54:04 atsushi@mbp.local The key's randomart image is: +--[ RSA 2048]----+ | E+o | | . | |.o. . . | |o... +.. | |.o.o=oo S | |..+.+= . | | o..+ | | .o . | | .. | +-----------------+
これで、以下の2つのファイルが出来上がる。
そしてこの公開鍵をリモートに登録する。この時は通常のパスワード
■ホスト(Mac)での作業 $ cat ~/.ssh/raspi.pub ssh-rsa AAA…… ←この行(公開鍵)をコピーする ■リモート(RaspberryPi)での作業 $ vi ~/.ssh/authorized_keys ssh-rsa AAA…… ←先の行(公開鍵)をペーストする $ chmod 600 ~/.ssh/authorized_keys
■ホスト(Mac)での作業 $ ssh -i [秘密鍵のパス] [リモートユーザ名]@[リモートホスト名] 例) $ ssh -i ~/.ssh/raspi pi@192.168.1.100
一度行うと、以後は秘密鍵の指定もいらなくなる。便利。
$ ssh pi@192.168.1.100