ServerAとServerBとの間でrsyncを使ってバックアップをしようと思います。暗号鍵を使った認証を行いたいので、手順を教えてください。AからBにバックアップします。

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 ディレクトリは 700authorized_keys ファイルは 600 である必要があります。不適切だと認証に失敗します。
  • –dry-run: 本番実行の前に --dry-run オプションを付けて、どのファイルが転送されるか確認することをお勧めします。 

このバックアップを定期的に自動実行させたい場合は、crontab に上記のrsyncコマンドを登録してください。 

次は、特定の時間帯に自動実行するための cron設定 について詳しく説明しましょうか?