FreeNAS2台で公開鍵認証して、rsyncで同期スケジュールするのをできるだけブラウザからやってみた
前回から少し時間が空きましたが、構築したFreeNAS2台を使って、rsync同期を行いましたので、まとめます。
前回の記事→FreeNAS-11.0をインストールしてNASを構築したよ - かならぼ
今回の構築のイメージは下記の通り。
SSH接続でパスワードなしの許可をするののセキュリティに関しては、別件として考えるとして、ひとまず横においておきましょう。
手順
- SSHクライアント(サーバA:192.168.1.100)側で鍵を生成
- 公開鍵をSSHクライアント(サーバA:192.168.1.100)からSSHサーバ(サーバB:192.168.1.102)にコピー
- SSH疎通確認
- rsyncPUSH元(サーバA:192.168.1.100)からrsyncの設定
- 即時反映テスト
- スケジュール設定
それでは順にみていきます。
SSHクライアント(サーバA:192.168.1.100)側で鍵を生成
できるだけブラウザから、というのに矛盾している感もありますが、コマンドラインから鍵作成を行います。
鍵作成ソフトは色々あるのですが、インストールする手間を考えてのことです。大丈夫、FreeNASならブラウザからコマンド叩けます。
コマンドは、FreeNAS右側のメニューからシェルを選ぶと表示される画面で入力できます。
ログイン中のアカウントでの作成になりますので、SSH接続したいアカウントでログインするか、suコマンドでアカウント変更してからコマンドを入力してください。
1.鍵を作成
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/(ユーザ名)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 【何も入力せずにenter】
Enter same passphrase again: 【何も入力せずにenter】
Your identification has been saved in /(ユーザ名)/.ssh/id_rsa.
Your public key has been saved in /(ユーザ名)/.ssh/id_rsa.pub.
2.rsa公開鍵を表示
$ cat .ssh/id_rsa.pub
(enter後公開鍵が表示されます。)
例えば、アカウントrootで作成した場合
[ssh-rsa
xxxxxxxxxxxxxxx(ここにランダムの文字)xxxxxxxxxxxxxxxxxxxxxxx root@(ホスト名)
]
表示された公開鍵(上記の[ ]内全て)をコピーしておきます。
公開鍵をSSHクライアント(サーバA:192.168.1.100)からSSHサーバ(サーバB:192.168.1.102)にコピー
1.サーバ側(サーバB:192.168.1.102)に鍵を登録
(右メニュー)ユーザ→ユーザを表示→(ユーザを選択)→(下ボタン)ユーザ修正より公開鍵登録画面を出します。
2.SSH公開鍵欄に先ほどコピーした公開鍵をペースト
コピーできたら、OKボタンを押します。
SSH疎通確認
SSHクライアントとなるサーバ(サーバA:192.168.1.100)から、鍵無しでSSHログインできるかテストします。
SSHサーバ(サーバB:192.168.1.102)のサービスが起動をさせておいてください。
$ ssh (ユーザ名)@192.168.1.102
ログインできたら公開鍵認証テスト完了です。
一回目の接続の際は、
Are you sure you want to continue connecting (yes/no)?
というような確認が出ることがあります。接続していいかどうかの確認なので「Yes」とタイプしてください。
rsyncPUSH元(サーバA:192.168.1.100)からrsyncの設定
(FreeNAS公式のドキュメントはこれ→https://doc.freenas.org/9.10/tasks.html#rsync-tasks)
タスク→タブからRsyncTasksを選択して→Add Rsync Tasksボタンを選択
設定を入力していきます。
表示されるオプション
パス | 設定側のサーバのどのデータをrsyncするか設定 |
ユーザ | どのユーザで実行するか |
リモートホスト | rsyncされる側の設定 今回はサーバB:192.168.1.102 |
Remote SSH Port | SSHのポート番号 特に設定してない場合は22 |
Rsync mode | Rsync module か Rsync over SSHを選びます 今回はRsync over SSH |
リモートパス | rsyncされる側のパス 今回はサーバBのrsyncされる場所 |
Validate Remote Path | チェックしておけばリモートパスがない時に自動で作成します |
方向 | プッシュかプルかを選べます 今回はプッシュ |
Short Description | 説明文を入力できます |
Minute Hour Day Month Day of week |
タスクにしたい日時を選びます |
再帰的 | サブディレクトリも対象にするか |
Times | ファイルの日時を保持するか |
圧縮 | 圧縮してrsyncを行うか |
アーカイブ | -rlptgoDのこと (再帰的、シンボリックリンクのシンボリックリンクのコピー、パーミッションの保存、変更時刻の保存、グループの保存、所有者の保存(スーパーユーザーのみ)、デバイスファイル(スーパーユーザーのみ)と特別なファイルの保存) |
削除 | |
Quietモード |
リモートサーバからのメッセージを抑制します |
Preserve permissions | 元のファイルのパーミッションの保持をするか |
Preserve extended attributes | 拡張属性を保持するか |
Delay Updates | 一時ファイルを作成し全ての転送が終了した際に書き込みされます |
拡張オプション | 上記にないrsyncオプションはここに入力できます |
有効化 | タスクを有効にするかどうか |
OKボタンを押すとタスクが登録されます。
即時反映テスト
登録されたタスクを選択した状態だと下にRunNowボタンがありますのでこれを押すと直ちにテストできます。
スタートするとスタートされましたと表示されます。
スケジュール設定
テストタスクが表示された後、タスクの詳細画面で有効化設定を行います。
これでスケジュールに沿ってタスクが実行されるはずです。
以上です。
やはりFreeNASお手軽ですね。