同じローカルネットワーク上の2台のコンピュータにrsyncをインストールしました。 2つの間で/var/www/html/フォルダを同期しようとしています。
マシンAに「rsync」というユーザーを作成しました。
次に、マシンBで次のコマンドを実行します。
rsync --rsh=rsh [email protected]:/var/www/html/ /var/www/html/
...次のエラーが発生します。
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.2]
コマンドにsshの代わりにrshが必要な場合、「publickkey」関連のエラーが発生するのはなぜですか?内部網なので盗聴の危険がないのでrshを使って仕事を簡素化したかったです。
誰もがこれを行うために私が逃したステップを教えてもらえますか?
(いくつかの追加の注意:他のrsyncフラグが必要であることを知っていますが、これから始めました。また試してみました。[Eメール保護]予期したエラーが発生しました。だから私はそれが少なくとも正しい場所に接続しようとしていることを知っています。 )
答え1
rsh
実際のクライアントをインストールしましたか?それとも/usr/bin/rsh
シンボリックリンクですか/usr/bin/ssh
?これは今日非常に一般的な設定です。
たとえば、Debianはrsh
代替システムを介して次のシンボリックリンクを使用しますssh
。
$ ls -lF /usr/bin/rsh
lrwxrwxrwx 1 root root 21 May 18 2018 /usr/bin/rsh -> /etc/alternatives/rsh*
$ ls -lF /etc/alternatives/rsh
lrwxrwxrwx 1 root root 12 May 18 2018 /etc/alternatives/rsh -> /usr/bin/ssh*
$ update-alternatives --display rsh
rsh - auto mode
link best version is /usr/bin/ssh
link currently points to /usr/bin/ssh
link rsh is /usr/bin/rsh
slave rsh.1.gz is /usr/share/man/man1/rsh.1.gz
/usr/bin/ssh - priority 20
slave rsh.1.gz: /usr/share/man/man1/ssh.1.gz
実際のクライアントが必要な場合は、代替リンクを自動的に更新するパッケージをインストールするrsh
必要があります。rsh-client
rsh-client
たとえば、テストのために仮想マシンにインストールしました。
# update-alternatives --display rsh
rsh - auto mode
link best version is /usr/bin/netkit-rsh
link currently points to /usr/bin/netkit-rsh
link rsh is /usr/bin/rsh
slave rsh.1.gz is /usr/share/man/man1/rsh.1.gz
/usr/bin/netkit-rsh - priority 100
slave rsh.1.gz: /usr/share/man/man1/netkit-rsh.1.gz
/usr/bin/ssh - priority 20
slave rsh.1.gz: /usr/share/man/man1/ssh.1.gz
PS:rsh
古くて安全でないゴミです。どんな場合でも、「完全に信頼でき、信頼できる」ローカルネットワークでもそれを使用しないでください。代わりに使用してくださいssh
。数分後にSSHキーペアを作成し(まだない場合)、~/.authorized_keys
リモートシステムのファイルに公開キーをインストールします。