rsync用公開鍵の設定方法

バックアップ用に建てたサーバから定時バックアップをする。その際、秘密鍵にパスワードをかけないため、その秘密鍵を使ってバックアップサーバから元のサーバに入られることを避けたい。つまり、rsync専用の公開鍵認証を設定する。

バックアップ元

ホストexample.com
ユーザsomeone
対象ディレクトリ/home/someone/backup/
IPアドレス192.168.1.111

バックアップ先

ホストbackup.example.com
ユーザbackup
対象ディレクトリ/home/backup/data/example.com/
IPアドレス192.168.1.222

先ずは動作確認のためにバックアップ元に公開鍵を追加。

$ vi /home/someone/.ssh/authorized_keys
# 最終行に公開鍵を追加
ssh-rsa xxxxxxxxxx中略xxxxxxxxxx backup@backup.example.com

次にrsyncにvvオプションを付けて、バックアップサーバからバックアップ元に送信されるコマンドを確認。

$ rsync -avvz someone@example.com:/home/someone/backup/ /home/backup/data/example.com/
opening connection using: ssh -l someone example.com rsync --server --sender -vvlogDtprze.iLsfxC . /home/someone/backup/ (10 args)
receiving incremental file list
# 後略

バックアップ元サーバの公開鍵のコマンドを限定。

$ vi /home/someone/.ssh/authorized_keys
#最終行の公開鍵の前にコマンドを追加
command="rsync --server --sender -vvlogDtprze.iLsfxC . /home/someone/backup/" ssh-rsa xxxxxxxxxx中略xxxxxxxxxx backup@backup.example.com
$ rsync -avz someone@example.com:/home/someone/backup/ /home/backup/data/example.com/
# 動作する

$ ssh someone@example.com
# 反応しない