oriTATです。稲村さん、Yusukeさんからいただいた内容で
「rootのリモートログインを許可していないマシンにroot権限かつ
ノンパスワードでrsync over ssh実行」
ができました。これでもうcronにしかけられます!
ssh単体によるノンパスワード接続のほうは、稲村さんからいただいた
> を見てみると、これ以外の特別な設定がないのならば、3.1 はたしか
> プロトコル ver.2 で繋ぎに行く筈だから、
という、これがヒントになりました。
そもそもssh-keygenのとき rsa1と指定したことを思い出し、
逆にプロトコルVer.1で強制的に繋いだらどうだろう?ということで
ssh -1 remote.co.jp
と指定すると現状でノンパスワードで入れました。
また、「rootのリモートログインを許可していないマシンに...」に
つきましてはYusukeさん案+稲村さん補足案でバッチリでした。
1) remote.co.jpの/etc/ssh/sshd_configを書き換え
PermitRootLogin forced-commands-only ←ここをnoから書き換え
RhostsAuthentication no
RhostRSAAuthentication yes
IgnoreRhosts no
2) remote.co.jpのsshdを再起動
local.co.jpから TTSSHなど使い、ssh経由でrootのログインができない
ことを確認
3) rootユーザで ssh-keygen(パスフレーズは入れない)
4) 3)で出来た 公開鍵に
"from=local.co.jp","command="rsync --auz -delete -e ssh remote.co.jp:
/var/log ~./tmp",no-pty,no-port-forwarding 1024 (以下略)"
と追記
5) 4)を remote.co.jpの /root/.ssh/authorized_keysにリダイレクト
6) この状態で local.co.jpからrootで
> ssh -i ~/.ssh/identity remote.co.jp
と実行したところ、ノンパスワードでrsyncが自動実行されました!
(-1は不要でした)
これでcronにしかけても問題ありません。
万が一 identity.pubを盗まれても forced-commands-onlyなので
rsyncしかできません。
実はミラーリング対象とするディレクトリは固定ではないのです、
ですからこの方法だと固定になってしまうのですが、まずは
root権限で使用を制限できるようになりましたので、そちらは
自分でいろいろ試してみます。
それにしても
------------------------------------------------------------------
◆稲村 雄 =JANE= <jane@vicus-oryzae.com>さんのメールの引用です:
(Tue, 22 Oct 2002 16:45:45 +0900付)
------------------------------------------------------------------
> ほんとうに知りたいのはこの snip された以下の部分でどういうやり
> とりがサーバとクライアントの間で交わされているか、なのです。
(snip)
> こちらも同じく。port 22 以外の空いたポートで sshd -d を立ち上
> げ、その sshd -d と ssh -v とを通信させてみるとどのようなメッ
> セージが出るかを書いて欲しい、ということ。
ご指摘いただいてただただ赤面です…。
再掲しようかと思った矢先にいただいた内容で実行できたので、まず
解決メールを先に出させていただきました。
上記は次回から気をつけます。
本当にいろいろありがとうございました。
--
oriTAT <oritat@myrealbox.com>