2 つの VM 間の SCP ファイル

2 つの VM 間の SCP ファイル

仮想マシンが 2 つあります。1 つ目の仮想マシンにはソース ファイルが保存されています。2 つ目の仮想マシンには bash スクリプトがあり、ソースから 2 つ目の仮想マシンにファイルをコピーする必要があります。

これをBashで実行するにはどうすればよいですか?

スクリプトが 3 番目のマシンで実行されているときに、Bash で 1 番目の仮想マシンから 2 番目の仮想マシンにファイルを SCP することは可能ですか? 可能であれば、その方法を教えてください。

答え1

それは可能です (両方のホストが SSH をリッスンしていて、最初のリモート ホストが 2 番目のホストを見ることができる限り)。試してみませんか?

scp remote1:/path/to/file remote2:/path/to

これらのホストの両方に対してユーザー名とパスワードを入力する必要がある場合があります (ユーザー名がマシンごとに異なる場合)。

エージェント転送を有効にしてエージェントベースの認証を使用する場合は、パスワードを入力する必要はありません (これが私が推奨する作業方法です)。

これは Bash (または仮想マシン) とは何の関係もなく、どのシェルでも動作するはずであることに注意してください。

答え2

これを行う通常の方法は、リモート マシンの 1 つに ssh で接続し、そこから scp を発行することです。

#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/

答え3

3 台目のマシンを介してブリッジする必要がある場合は、次のように ssh で実行できます。

ssh remote1 cat file | ssh remote2 'cat > file'

または tar の場合:

ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest

関連情報