やりたいこと
[localhost] ┬────ssh接続可能────────[remotehost1]
│ │
│ ×ここはつながってない
│ │
└────ssh接続可能─────────[remotehost2]
上記のような環境で、localhostから、remotehost1のファイルをremotehost2にできれば ワンコマンド でコピーする
答え
結論から言うと、-3
オプションをつけることで可能となります。
scp -3 remotehost1:text.txt remotehost2:
解説
興味のある方のみどうぞ。。
大したことではなく、scpの仕様の問題です。
単純にやろうとすると、以下を書きたくなります。
scp remotehost1:text.txt remotehost2:
→これは、失敗します。
ssh: connect to host [remotehost2のIP] port 22: Connection timed out
lost connection
Connection [remotehost1のIP] closed.
なぜなら、上記のような書き方をした場合、
[localhost]───────ssh接続可能────────[remotehost1]──────────ssh接続可能──────────[remotehost2]
であることが条件となります。
つまり、実際のファイル転送は、remotehost1
が行うようです。