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/",
で決めるのだと思いますが、上手く働いていないのではないかと思っています。
アドバイス頂けると幸いです。
host1 host2 共にapacheユーザ権限で秘密keyを使ってのssh接続ができることは確認済みです。
「共に」というのがちょっとひっかかります。
操作をしている端末から host1 host2 の両方に ssh ログインできるということですか?
host1 → host2 や、host2 → host1 の方向で ssh ログインできることを確認したということでしょうか?
同期を取りたい方向が host1 → host2 だとして以下の手順で確認すれば良いと思います。
こちらのページに細かく手順が載っているので、確認してみると良いと思います。
http://changineer.info/server/centos_basic/centos_basic_rsyncd_lsyncd
対象ディレクトリのパーミッションとrsyncd.confで設定しているuid を確認してみてください。
次に/etc/rsyncd.conf を確認して下さい。以下の設定になっていますか?
use chroot = no
それから、SELinuxが無効になっていることを確認してください。
こちらでは、似たような状況になっていた方が自己解決に至ったことが書いてあります。
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
- sshd_config のAllowUsersの設定に接続するユーザー名が登録されていない。
- リモート側の.sshディレクトリのPermissionが700になっていない。
- リモート側の公開鍵ファイルのPermissionも600になっていない。
- クライアント側の秘密鍵フォルダのPermissionが700になっていない。(未確認)
- クライアント側の秘密鍵ファイルのPermissionが600になっていない。
host1 → host2 や、host2 → host1 の方向で 確認
2014/06/23 14:28:59上記通りです。別サーバーでのrootログインでは成功しているのですが、ユーザ権限で上手く動作させることができず。どうも公開keyをよてめいないのでは。。と思っております。
頂いた先のは古いバージョンのようです。設定ファイルの書き方が変わるのですよね。。
2014/06/23 14:30:15