daemon-over-sshモードでrsyncが機能しない


11

毎日サーバーからデータをコピーするようにrsyncを設定しようとしています。システムをできるだけ制限するために、manページに記載されているモードを使用しようとしています。「リモートシェル接続を介したRSYNC-DAEMON機能の使用」

それで、私はrsyncd.confと呼ばれるファイルをルートのホームフォルダに入れました:

[root]
path = /
read only = true

そして、テストとして/ etc / passwdをコピーしようとしました:

rsync -vv -e ssh myserver::root/etc/passwd .

しかし、私は次のようになります:

opening connection using: ssh myserver rsync --server --daemon . 
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.3]

これをすべて行っている理由は、いったん機能するようになったら、コマンドを指定してアクセスを制限することです。

rsync --server --daemon .

〜/ .ssh / authorized_keysに


受信サーバーの/ var / log / secureまたは/ var / log / messagesには何が記録されますか?
デイブチェイニー

rsync:構成ファイル「/etc/rsyncd.conf」を開くことができません:そのようなファイルまたはディレクトリはありません(2)おかげで、解決策につながりました。これを回答として投稿します。
rjmunro 09年

回答:


11

ドキュメントまたはrsyncの実装にバグがあるようです。man rsyncより

Rsyncは、リモートシェルを使用してホストに接続し、リモートユーザーのホームディレクトリにある構成ファイルを読み取ることを想定した使い捨ての「デーモン」サーバーを生成することをサポートします。

/ var / log / messagesによると、rootに接続するとき、/ etc / rsyncd.confで設定ファイルを探していました(SSH経由で使用しない場合のrsyncd.confファイルの標準の場所)。

を追加して、sshサーバーに正しい構成ファイルを使用させる必要がありました

command="rsync --config=/root/rsyncd.conf --server --daemon ."

/root/.ssh/authorized_keysに。

デフォルトの場所に設定を配置しなかった理由は、誰かが誤って通常のrsyncデーモンを起動することを望んでいないからです。


5

デーモンモードでのrsyncは、可能な限り厳密にロックダウンする場合に推奨するものではありません。SSHキーの実行を許可するコマンドを制限し、そのキーを使用してコピーコマンドを呼び出します。

キーを制限するコマンドを見つけるには、sshコマンドを少し変更して、適切なrsyncコマンドラインを実行します。

rsync -avz -e 'ssh -v' stuff somewhere:/place

次のような行がデバッグ出力に表示されます。

debug1: Sending command: rsync --server -vlogDtprze.iLs . /place

その正確なコマンドは、.ssh / authorized_keysで実行できるようにキーを制限するものです。

command="rsync --server -vlogDtprze.iLs . /place" ssh-dss AAAASSHKEY=

3
システムの一部の異なる読み取り専用バックアップを実行できるようにしたいと考えています。たとえば、毎日電子メールとSQLデータベースをバックアップしますが、他のことは週に1回です。可能なバックアップごとに特定のコマンドと特定のキーが必要になり、同じインフラストラクチャで追加のアドホックバックアップを行うことはできません。
rjmunro 09年


1
スクリプトに複数のコマンドを入れて、スクリプトにパラメーターを1行目の入力として渡すことができます。
アレコ

1
デバッグ情報を介さずにコマンドシリアルを生成する方法はありますか?'-vlogDtprze.iLs'
qodeninja
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.