rsyncをパスワード無しで実施する
CentOS 7でサーバ間の同期を実行する必要があったので、rsyncで同期してみました。
事前にサーバ間で鍵交換の設定させ、パスワード認証無しでrsyncを実施させてみました。
サーバBが、サーバAからパスワード認証無しでファイルを受信し同期するようにしてみました。
サーバA:送信側
サーバB:受信側
サーバB(受信側)で、秘密鍵と共通鍵のセットを作成
rsyncでログインを実行するユーザーで、以下のコマンドを実行する。
-Cオプションで"を設定することでコメントを削除しています。
-Nオプションで"とする事で、パスフレーズ無しとしています。
[ユーザー名@Server-b .ssh]$ ssh-keygen -t rsa -C " -N " -f /home/ユーザー名/.ssh/id_rsa |
権限系の設定ちゃんと実施しおかないと、後で注意メッセージが表示されので設定します。
[ユーザー名@Server-b .ssh]$ chmod 700 /home/ユーザー名/.ssh [ユーザー名@Server-b .ssh]$ chmod 600 /home/ユーザー名/.ssh/id_rsa.pub |
サーバBからサーバAに公開鍵ファイルを転送
公開鍵を送信側サーバに転送します。ユーザー名はログインするユーザー名を指定します。今回は、SCPでファイル転送実施します。(SSHのポートを変更していない場合は、-pオプションは必要ありません。)
[ユーザー名@Server-b .ssh]$ scp -P SSH時のポート番号 /home/ユーザー名/.ssh/id_rsa.pub ログインユーザー名@接続先サーバのIP:/home/ユーザー名/.ssh/id_rsa.pub |
サーバAで鍵の設定
送信サーバ側で鍵の設定を行います。ログインするユーザーで実行して下さい。
[ユーザー名@Server-a .ssh]$ cd /home/ユーザー名/.ssh [ユーザー名@Server-a .ssh]$ cat id_rsa.pub >> authorized_keys |
権限系の設定と公開鍵を削除します。
[ユーザー名@Server-a .ssh]$ chmod 700 /home/ユーザー名/.ssh [ユーザー名@Server-a .ssh]$ chmod 600 /home/ユーザー名/.ssh/authorized_keys [ユーザー名@Server-a .ssh]$ rm -f id_rsa.pub |
パスワード無しでrsyncコマンドを試してみる
設定が終わったら、rsyncを試してみます。rsyncコマンドのオプションは適時指定してください。
[ユーザー名@Server-b .ssh]$ rsync -avzu “ssh -p SSH時のポート番号 -i /home/ユーザー名/.ssh/id_rsa " ユーザー名@接続先サーバ名:コピー元ディレクトリコピー先ディレクトリ |
エラーになる、パスワードを聞かれる場合は、権限かファイル名を間違っているケースが多いかと思います。その編を再度確認してみましょう。
Cronに設定することで、定期実行も可能です。
※セキュリティ面は充分注意の上、実施可否を判断するようにして下さい。