Lsyncd 2.1.4での質問です。


host1 host2 共にapacheユーザ権限で秘密keyを使ってのssh接続ができることは確認済みです。

その状態でLsyncdでフォルダの同期を行いたいと思っています。

設定は下記です。


settings{
logfile = "/var/log/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1,
delay = "3",
}

sync{
default.rsync,
source = "/var/www/html/",
target = "apache@*.*.*.*:/var/www/html/",
rsync = {
archive = true
}
}

しかしながら

Mon Jun 23 12:13:01 2014 Normal: recursive startup rsync: /var/www/html/ -> apache@***.***.***.***:/var/www/html/
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]
Mon Jun 23 12:13:01 2014 Error: Temporary or permanent failure on startup of "/var/www/html/". Terminating since "insist" is not set.

のようなエラーがでます。

予想するにどのアカウントでssh接続するか

target = "apache@*.*.*.*:/var/www/html/",

で決めるのだと思いますが、上手く働いていないのではないかと思っています。

アドバイス頂けると幸いです。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/06/30 13:30:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:gizmo5 No.1

回答回数504ベストアンサー獲得回数141

ポイント167pt

host1 host2 共にapacheユーザ権限で秘密keyを使ってのssh接続ができることは確認済みです。

「共に」というのがちょっとひっかかります。
操作をしている端末から host1 host2 の両方に ssh ログインできるということですか?
host1 → host2 や、host2 → host1 の方向で ssh ログインできることを確認したということでしょうか?

同期を取りたい方向が host1 → host2 だとして以下の手順で確認すれば良いと思います。

  • host1 から host2 へ ssh でログインできる
  • host1 から host2 へ rsync コマンドでファイルを転送できる

こちらのページに細かく手順が載っているので、確認してみると良いと思います。
http://changineer.info/server/centos_basic/centos_basic_rsyncd_lsyncd

id:kichitaka

host1 → host2 や、host2 → host1 の方向で 確認

上記通りです。別サーバーでのrootログインでは成功しているのですが、ユーザ権限で上手く動作させることができず。どうも公開keyをよてめいないのでは。。と思っております。

2014/06/23 14:28:59
id:kichitaka

頂いた先のは古いバージョンのようです。設定ファイルの書き方が変わるのですよね。。

2014/06/23 14:30:15
id:snow0214 No.2

回答回数470ベストアンサー獲得回数116

ポイント167pt

対象ディレクトリのパーミッションとrsyncd.confで設定しているuid を確認してみてください。

次に/etc/rsyncd.conf を確認して下さい。以下の設定になっていますか?

use chroot = no

それから、SELinuxが無効になっていることを確認してください。

id:gizmo5 No.3

回答回数504ベストアンサー獲得回数141

ポイント166pt

こちらでは、似たような状況になっていた方が自己解決に至ったことが書いてあります。
http://www.linuxquestions.org/questions/linux-general-1/problems-setting-up-lsyncd-4175461094/

I have resolved it.
It seems that for lsyncd you MUST have permitrootlogin allowed in the ssh_config file.



回答のコメントでは ssh でのログインができているとのことでしたが、root でしかログインできていないのではないでしょうか。
メッセージから見るに、一般ユーザで ssh でのログインができないことが原因のように思います。
/var/log/secure を確認したうえで、以下のサイトに書いてあるようなことを確認した方が良いと思います。
http://www.gamvaro.com/kswiki/index.php?%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%2FSSH

  1. sshd_config のAllowUsersの設定に接続するユーザー名が登録されていない。
  2. リモート側の.sshディレクトリのPermissionが700になっていない。
  3. リモート側の公開鍵ファイルのPermissionも600になっていない。
  4. クライアント側の秘密鍵フォルダのPermissionが700になっていない。(未確認)
  5. クライアント側の秘密鍵ファイルのPermissionが600になっていない。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません