私は 次のガイド に従って、ローカルマシンとリモートサーバー間でSSHを使用してRsyncをセットアップしました:
ルートとして以下を実行しました。
rsync -avz -e ssh /home/user/dir [email protected]::Backup/dir
->パスワードを要求する
ssh-keygen
->生成されたキー
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
->キーがコピーされたことの確認
ssh 192.168.200.10
->パスワードを要求せずにリモートサーバーにアクセスします
rsync -avz -e ssh /home/user/dir [email protected]::Backup/dir
->パスワードの入力を求める
パスワードの入力を求められずにリモートサーバーにSSHで接続できるのは不思議ではありませんが、rsyncを使用している場合はそうです。
私は見えます .ssh/authorized_keys
リモートサーバー上。
どこが間違っているのですか?
2つの別々の接続モードを混合しています:リモートシェル(-e ssh
)リモートシェルなしで、rsync daemon
(二重コロンで識別)。
マニュアル の状態:
RSYNCサーバーへの接続
リモートシェルなしでrsyncをトランスポートとして使用することもできます。この場合、TCPポート873で実行されているリモートrsyncサーバーに接続します。
......ホスト名をパスから分離するために単一のコロンの代わりに二重のコロン::を使用するか、rsync:// URLを使用します。
.......リモートサーバー上の一部のパスでは、認証が必要な場合があります。その場合は、接続時にパスワードプロンプトが表示されます。環境変数RSYNC_PASSWORDを使用するパスワードに設定するか、-password-fileオプションを使用することで、パスワードプロンプトを回避できます。これは、rsyncのスクリプトを作成するときに役立ちます。
おそらく、パスワードなしの認証を取得する最も簡単な方法は、上記のコマンドを次のように変更することです。
rsync -avz -e ssh /home/user/dir [email protected]:/absolute/path/to/Backup/dir
ローカルアカウントのユーザー名は、Rsyncで使用するユーザー名であるroot
ではない可能性があります。
ssh remotehost
…実質的には次と同じです:
ssh localUserName@remotehost
申し訳ありませんが、すでにrootで実行しているとおっしゃっていることに気づきませんでした。
また、コロンが2つあるモジュール構文を使用していることに気づきませんでした(::
)リモートホスト名の後。 あなたが従ったガイド はこの方法でRsyncに接続することをカバーしているとは思いません。たとえば、単一のコロン構文を使用する場合は問題ないはずです。
rsync -avz -e ssh /home/user/dir [email protected]:/some/path/backups/dir
私もこの問題を抱えていました-これがお役に立てば幸いです。私にとって、問題は代替ポートsshに必要な構文でした。次に、2つの実用的な例を示します。
これをターゲットバックアップマシンから実行します。ターゲットバックアップマシンは、ソースからターゲットバックアップにプルします。
rsync -av --delete -e 'ssh -p 59333 -i /home/user/.ssh/id_rsa' [email protected]:/home/user/Server/ /home/user/Server/
ソースからターゲットのバックアップに送信するソースマシンからこれを実行します。
rsync -av --delete -e 'ssh -p 59333 -i /home/user/.ssh/id_rsa' /home/user/Server/ [email protected]:/home/user/Server/
このソリューションは、ssh-copy-id -p 59333
を使用して、公開鍵をターゲットと交換したり、その逆を行ったりしていることを前提としています。ポート22を使用する場合、この奇妙な構文は必要ありません。その場合、i
フラグを使用でき、~/.ssh/id_rsa.pub
のデフォルトの場所から公開鍵を取得します。これは、代替ポートがなくても正常に機能する例です。
これをターゲットバックアップマシンから実行します。ターゲットバックアップマシンは、ソースからターゲットバックアップにプルします。
Sudo rsync -avi --delete [email protected]:/var/www/ /media/sdb1/backups/www/
ソースからターゲットのバックアップに送信するソースマシンからこれを実行します。
Sudo rsync -avi --delete /media/sdb1/backups/www/ [email protected]:/var/www/
それでもパスワードの入力を求められる場合は、/etc/ssh/sshd_config
のssh設定を確認し、ソースとターゲットのユーザーがそれぞれ他のユーザーの公開sshキーを持っていることを確認する必要があります。上記の他の2つが残した構文はまだ機能しないため、この詳細を残しました。