編集#1
roaimaの答えに基づいて試しました(user1
= hereを使用user2
)。
[user3@M3]$ ssh -R 50000:M2:22 user1@M1 rsync -e "ssh -p 50000" -avz /absolute_path1/ user2@localhost:/absolute_path2/
Permission denied, please try again.
Permission denied, please try again.
user2@localhost: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
キーペアに問題がある可能性があります。 6つの公開鍵と秘密鍵を設定できます(M3-> M1など)。
次のいずれかのコマンドを実行するために必要なものは何ですか?
どのペアが他のペアと同じでなければなりませんか?
M1(リモート)、M2(家)、M3(家、同じルータの背後にある)の3つのコンピュータがあります。可能なSSH接続(クライアント - >サーバー)は、M3 - > M1(VPNを介してのみ)、M3 - > M2です。どちらの場合も、SSHキーペアを使用しています。
- M3にはSSHサーバーがないため、M1-> M3、M2-> M3は不可能です。
- M2ではVPNを使用できないため、M2-> M1は不可能です。
- M1->M2が可能かどうかはわかりません。
user1@M1
rsync -> user2@M2
(つまり、user1@M1
ソースおよびターゲット) を意味user2@M2
し、その逆も同様です。特定のケースでは、user1=user2
しかし一般的なケースが目標です。
可能ですか?
そのうちの1つだけですか?
どのように?
これを達成するには、M1-> M2アクセス権が必要ですか?
では、どうすればこれを達成できますか?
私はそれに非常に近いようです。
rsync M1->M2を試して、次のことを実行しました
user3@M3
(user1@M3
またはなしuser2@M3
):[user3@M3]$ ssh -R localhost:50000:<M2 ip>:22 <M1 ip> 'rsync -e "ssh -p 50000" --perms -vur --dry-run <M1 dir> localhost:<M2 dir>' Enter passphrase for key '<user3 $HOME>/.ssh/id_rsa': Connection closed by <M1 ip> port 22
user3
ちなみにキーペアのパスワードは(しかないので)M3エージェントが聞いてみましたしM3
、私はパスワードを正確に入力しました。rsync M2->M1 を試みると、次から実行されます
user3@M3
。[user3@M3]$ ssh -R localhost:50000:<M1 ip>:22 <M2 ip> 'rsync -e "ssh -p 50000" --perms -vur --dry-run <M2 dir> localhost:<M1 dir>' Enter passphrase for key '<user2 $HOME>/.ssh/id_rsa': <user3>@<M2 ip>'s password: Permission denied, please try again. ...
user3はM2には存在せず、決して成功しません。 user1を渡す正しい方法を見つける必要があります。そのために...
rsync M2->M1 を試して
user3@M3
add を実行しますuser2
。[user3@M3]$ ssh -R localhost:50000:<M1 ip>:22 <user2>@<M2 ip> 'rsync -e "ssh -p 50000" --perms -vur --dry-run <M2 dir> localhost:<M1 dir>' Host key verification failed. rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
user1
代わりに使用するか、user2
その逆を使用してもここでは同じであるため、問題は解決されません。
どのように動作するかを理解するのに役立つ場合は、まずM1-> M2にSSHを接続するか、その逆にすることをお勧めします。
どうすればいいですか?
関連:
- 2つのリモコン間でファイルを同期する方法は?
- 2つのリモートサーバー間でファイルを同期する方法は?
- SSHキーを使用してリバースポート転送を介して2つのリモートサーバー間でrsyncを実行しようとしています。
- 明示的なポートと異なるユーザー名を使用して2つのリモートデバイス間でファイルを再同期する方法は?
- AWS ec2 - 2つのリモートデバイス間でファイルを同期する方法は?
- https://serverfault.com/questions/411552/rsync-remote-to-remote
- https://serverfault.com/questions/249421/rsync-from-one-remote-to-another
- https://superuser.com/questions/797473/creating-a-connection-Between-3-computers
- SSH - 3台のコンピュータ間にトンネルを設定するには?
ベストアンサー1
M3にはSSHサーバーがないため、M3-> M1、M3 -> M2は不可能です。
まあ?接続を開始するのはクライアントなので、通常、この関係をクライアント - >サーバーとして作成します。
中間にサーバーがない場合は、M3でリモートsrcとリモートターゲットを使用して中間でrsyncを実行することを試す必要があります(正しいですか?)。残念ながら、rsyncはリモートシャットダウンを処理できません。ただし、M3で両端にトンネルを設定し、もう一方の端でrsyncをトンネルとして指定できます。
userm3@m3 $ ssh -L 2222:m2:22 userm2@m2
その後、m3を介してm1からm2にアクセスできます。
userm1@m1 $ ssh -p 2222 userm2@m3
(ただし、認証キーとホスト固有のキーペアはこれにより難読化されます。)