2 つのサーバー間の SCP ファイルは非常に少数のサーバーを通過します。

2 つのサーバー間の SCP ファイルは非常に少数のサーバーを通過します。

server-aからserver-dにファイルをコピーしたいが、server-bとserver-cからのみserver-dにアクセスできます。サーバーaはサーバーbにのみアクセスでき、サーバーbはサーバーcにのみアクセスでき、サーバーcはサーバーdにのみアクセスできます。

現在私はそうします:

server-a> scp /tmp/file.txt user@server-b
server-a> ssh user@server-b
server-b> scp /tmp/file.txt user@server-c
server-b> ssh user@server-c
server-c> scp /tmp/file.txt user@server-d

これは5,6,7,..サーバーを介して行うことができます。

1つのコマンドでこれを実行できますか?

ベストアンサー1

ProxyCommandあなたは見る必要がありますマニュアルページ。例は次のとおりです。

Host serverB
HostName serverA.com
User someuser
ProxyCommand ssh -q serverB -W %h:%p  # -W is supported by a recent OpenSSH
# or for older versions or other implementations
# ProxyCommand ssh -q serverB nc %h %p

これにより、serverAを入力して接続できssh serverB、次にserverBに接続します。これは次のように簡単に拡張できます。

おすすめ記事