SSH経由でrsyncする

RaspberryPiで遊んでいるが、RaspberryPi上でvimスクリプト書くのはちょっとCPUが足りない感じになる(NeoComplecacheとか)。なので、メインマシン上でスクリプトを書き、SSH経由のrsyncスクリプトを同期して実行としている。

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

あとは、秘密鍵SSHする。

■ホスト(Mac)での作業
$ ssh -i [秘密鍵のパス] [リモートユーザ名]@[リモートホスト名]
例)
$ ssh -i ~/.ssh/raspi pi@192.168.1.100

一度行うと、以後は秘密鍵の指定もいらなくなる。便利。

$ ssh pi@192.168.1.100