scpでリモートサーバーからリモートサーバーにファイル転送

やりたいこと

[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が行うようです。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.