リモートコンピュータからローカルコンピュータに、またはその逆にデータを転送するシェル拡張またはプログラム

リモートコンピュータからローカルコンピュータに、またはその逆にデータを転送するシェル拡張またはプログラム

(A)、(B)をスキップしてアクセスできるローカルコンピュータ(L)とリモートコンピュータ(R)があります。

ファイルを転送するための一般的なルーチンは次のとおりです。

l@L$ ssh -t a@A ssh -t b@B ssh r@R
r@R$ # do some stuff till I find out I want to copy file x to L

次に、新しい端末を開きます。

l@L ssh a@A
a@A ssh b@B
b@B scp r@R:PATH_TO_FILE a@A:TEMP
b@B <ctrl-D> to close
a@A scp TEMP r@R l@L:FINAL_DESTINATION

そしてscp私のすべてのホップのためのファイル。

Rから直接ファイルをコピーできるシェル拡張子またはプログラムがあるかどうか疑問に思います。 stdout @ Rをstdin @ Lにパイピングしてキャッチするのと似ています。非常に効率的である必要はありません。ほとんどの場合、私のファイルは小さいですが(100kB未満)、バイナリをサポートする必要があります。

答え1

ssh構成を確認したい場合がありますProxyCommand。これにより、作業がよりスムーズになり、シェル、SFTP、トンネル、およびSSHを介してプロキシしたいすべての項目に対して機能します。

次の 3 つのホストがあるとします。

  • workstation.example.com- これはあなたが作業している機械です。
  • proxy.example.com- SSH トラフィックをルーティングするマシンです。
  • endpoint.example.com- ここがトラフィックが終わりたい場所です。

~/.ssh/configon にworkstation以下を追加します。

Host endpoint
    User WorkstationUser # set this to the username on the workstation host
    HostName endpoint.example.com
    ProxyCommand ssh [email protected] nc %h %p 2> /dev/null

proxyホストシステムにnc(netcat)がインストールされていることを確認してください。

その後、プロキシホストを介してそのシステムに透過的にプロキシを使用できますworkstationssh endpointsftp endpoint

関連情報