同じネットワークにない2つのサーバー間のscp


13

2つの異なるVPN接続でアクセスできるサーバーが2つあります。マシン上で両方のVPNを同時に動作させることができました(少しのルーティングルール)。

scp <remote1>:some/file <remote2>:destination/folder私のラップトップ端末からをしたいです。私はこれをしようとする。しかし、scp上で呼び出されるコマンドREMOTE1を見つけることができませんREMOTE2それらが同じネットワーク内にありませんので。scpコマンドをルーターとしてラップトップを強制的に通過させることは可能ですか?

Nautilus(サーバーに接続し、両方のサーバーに接続してからコピーアンドペースト)を試しても動作しますが、端末から実行したいと思います。


remote1remote2の両方にアクセスするのはマシンです。あなたは必ず誤差があることですREMOTE1はアクセスできませんREMOTE2

はい、エラーがSSHである:ホスト名<REMOTE2>を解決できませんでした:名前またはサービスが失われた接続を知られていない
Danduk82

また、<remote2>にIPアドレスを直接使用しようとすると、しばらくすると接続が失敗します(ハングアウト)。
Danduk82

それから、remote2に接続できないのはあなたのマシンだと思います。おそらく、VPN接続がタイムアウトまたはフレーク状である...
ヤン

いいえ、DNSが機能していても機能します。私は実際にscpコマンドの試みはとの間の接続を実行することを感じていREMOTE1REMOTE2を上で直接REMOTE1を
Danduk82 14

回答:


34

scpの新しいバージョンにはオプション-3があります

-3

Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts

すごい!まさに私が必要なもの。どうもありがとう
Danduk82

1
素晴らしい発見、私はそれを知りませんでした!
1

9

よりも柔軟性が必要な場合はscp -3、プレーンsshおよびパイプが楽しいです。

これは、ローカルマシンでストリームをリダイレクトするのと同じです。

ssh sourceRemote 'cat /path/to/sourceFile' \
| ssh destinationRemote 'cat > /path/to/destinationFile'

その後、任意の時点でストリームリダイレクションを追加して、たとえば複数の中間マシンをチェーンしたり、転送中のファイルのローカルコピーをルーティング中に保存したりできます。


2
ソースマシンがpvインストールされていて、最初のマシンcatをそれに置き換えた場合、素敵なプログレスバーが表示されます。
リオリ14

6

@Ankoの答えを拡張するとtar、複数のファイルに使用できます。

ssh -q user@sourcehost 'cd /source/path; tar -czf - files...' | \
ssh -q user@desthost 'cd /dest/path; tar -xzf -'

圧縮は完全にオプションです-データはあまり圧縮できないか、オーバーヘッドを保証するのに十分な大きさではない場合があります。お使いのバージョンがスイッチをtarサポートしていない場合は、それぞれ-zパイプスルーgzip -cおよびパイプスルーしgzip -dcます。

PS:tar抽出時に先頭のスラッシュを削除しないバージョンに注意してください(つまり、提供されている場合は絶対パス名に書き込みます)。

編集:-e none擬似端末が割り当てられていないため、パイプでは必要ありません。


1
ssh-Cストリーム圧縮を有効にするフラグがあります。man-pageによれば、あたかも同じアルゴリズムを使用しgzipます。また、マニュアルページでは、「モデム回線やその他の低速接続では圧縮が望ましいが、高速ネットワークでは速度が低下するだけ」という、いつ使用するかがわかりやすく説明されています。
アンコ14

4
@Anko、-Cここで使用する際の問題は、ローカルマシンがデータを圧縮解除および再圧縮する必要があることです。言ってtar圧縮されたデータが何も処理せずに直管を通過していること圧縮手段を実行します。
cjm 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.