現在私のローカルコンピュータに転送したいファイルはserverBにあります。 serverBに接続するには、まずserverAにSSHを接続し、次にserverBにSSHを接続します。 (例:ssh @serverA、次にserverA -> ssh @serverB)
scpを使ってこれを行う最良の方法は何ですか?
答え1
ProxyJump
のオプションが利用可能です~/.ssh/config
。からman ssh
:
-J宛先
まず、ターゲットホストへの接続を作成します。SSH宛先が説明するジャンプホストに接続した後、そこから最終宛先へのTCP転送を設定します。複数のジャンプをコンマで区切って指定できます。指定するショートカットです。プロキシジャンプ構成ガイドライン。コマンドラインで提供される設定ディレクティブは、通常、指定されたジャンプホストではなくターゲットホストに適用されます。ジャンプホストの設定を指定するには、 ~/.ssh/config を使用します。
たとえば、~/.ssh/config
次のようになります。
Host serverA
Port 22
Host serverB
Port 22
ProxyJump serverA
ssh
これは常にserverBに接続するように指示します。渡すserverAは正常ですssh
。scp
つまり、ssh serverB
またはを入力すると、scp serverB:big_file.txt .
ServerAを介してルーティングされることがわかります。 (ただし、公開鍵認証を使用する場合、serverB には必須鍵のローカルコピーが必要です.)
これをしばしば「ジャンプホスト」と呼びますssh
。の関連設定オプションは~/.ssh/config
ですProxyCommand
。