ServerA(バックアップ元)からServerB(バックアップ先)へ、SSH鍵認証を用いたrsyncバックアップを行う手順を解説します。
手順1:ServerAでSSH鍵ペアを作成する
まず、ServerAで認証に使用するための「秘密鍵」と「公開鍵」を作成します。バックアップを自動化(cronなど)する場合は、パスフレーズを空にして作成するのが一般的です。
bash
# ServerA で実行
ssh-keygen -t ed25519 -f ~/.ssh/id_rsync_backup
-t ed25519: 現在最も推奨される高速かつ安全なアルゴリズムです。-f: 鍵の名前を指定します。
手順2:ServerAの公開鍵をServerBに登録する
ServerAで作成した「公開鍵(.pub)」の内容を、ServerBの authorized_keys ファイルに追記します。
bash
# ServerA から ServerB へ公開鍵を転送(パスワードが一度聞かれます)
ssh-copy-id -i ~/.ssh/id_rsync_backup.pub ユーザー名@ServerBのIP
手順3:rsyncコマンドでバックアップを実行する
rsync実行時に、手順1で作成した秘密鍵を指定して実行します。
bash
# ServerA で実行
rsync -avz -e "ssh -i ~/.ssh/id_rsync_backup" /コピー元/ディレクトリ/ ユーザー名@ServerBのIP:/コピー先/パス/
-a: アーカイブモード(権限やタイムスタンプを維持)。-v: 進行状況を表示。-z: データを圧縮して転送。-e "ssh -i ...": 使用する秘密鍵を明示的に指定します。
注意点
- パーミッション:
.sshディレクトリは700、authorized_keysファイルは600である必要があります。不適切だと認証に失敗します。 - –dry-run: 本番実行の前に
--dry-runオプションを付けて、どのファイルが転送されるか確認することをお勧めします。
このバックアップを定期的に自動実行させたい場合は、crontab に上記のrsyncコマンドを登録してください。
次は、特定の時間帯に自動実行するための cron設定 について詳しく説明しましょうか?
