バックアップ用に建てたサーバから定時バックアップをする。その際、秘密鍵にパスワードをかけないため、その秘密鍵を使ってバックアップサーバから元のサーバに入られることを避けたい。つまり、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 # 反応しない