質問: rsync を実行すると、転送を開始する前にリモート サーバーでパスワードを要求されます。これを避けて、パスワードなしで rsync を実行したいと思います。 Linux でパスワードなしで ssh 経由で rsync をセットアップする方法の例を挙げて説明できますか?
答え: 次の手順では、パスワードを要求しない ssh 経由で rsync をセットアップする方法について説明します。これは、rsync を使用して自動バックアップ用の cron ジョブをスケジュールする場合に役立ちます。
1. ssh 経由で rsync をテストします (パスワード付き):
rsync を実行して、リモート サーバー上のアカウントのパスワードが要求され、ファイルがリモート サーバーに正常にコピーされることを確認します。
次の例では、ローカル フォルダー /home/ramesh をリモート フォルダー /backup/ramesh (192.168.200.10 サーバー上) に同期します。
以前の 15 回の rsync の例の記事で、rsync について詳しく説明しました。
これにより、リモート サーバー上のアカウントのパスワードが求められます。
rsync -avz -e ssh /home/ramesh/ [email protected]:/backup/ramesh/
2. ssh-keygen はキーを生成します。
ここで、ssh を実行するときにパスワードを要求されないように ssh をセットアップします。ローカル サーバーで ssh-keygen を使用して、公開鍵と秘密鍵を生成します。
$ ssh-keygen Enter passphrase (empty for no passphrase): Enter same passphrase again:
注: パスフレーズの入力を求められたら、Enter キーを押してください。ここではパスワードを入力しないでください。
3. ssh-copy-id は公開鍵をリモート ホストにコピーします
ssh-copy-id を使用して、公開鍵をリモート ホストにコピーします。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
注: 上記は、リモート ホスト上のアカウントのパスワードを要求し、公開鍵を適切な場所に自動的にコピーします。 ssh-copy-id が機能しない場合は、前述の方法を使用して ssh パスワードなしのログインを設定してください。
4.パスワードなしで ssh 経由で rsync を実行
これで、パスワードを入力せずにリモート ホストに ssh できるはずです。
ssh 192.168.200.10
rsync を再度実行します。今回はパスワードの入力を求められません。
rsync -avz -e ssh /home/ramesh/ [email protected]:/backup/ramesh/
この rsync バックアップ ジョブを自動的にスケジュールする場合は、cron を使用して設定してください。