別のホストにジャンプしてリモートからローカルにscpを送信する構文は何ですか?

別のホストにジャンプしてリモートからローカルにscpを送信する構文は何ですか?

リモートサーバーからローカルサーバーにファイルをコピーしようとしていますが、リモートサーバーは最初に中間ホストに接続してからそこから物理サーバーに移動する必要があります。 scpコマンドを使用してリモートサーバーからローカルコンピューターにファイルをコピーするためにこのジャンプ技術を使用する方法を知りたいです。

そのため、まず中間サーバーに接続し、そこから物理サーバーに接続しようとします。

答え1

ProxyJump最新バージョンのSSHでは、少なくともキーを設定した場合はSSHの概念を使用するのが非常に簡単です。

この3つのマシンをL、I、R(それぞれローカル、中間、リモート)と呼びます。最初は、ユーザー名がすべて同じであると仮定します。

必要なコマンドは次のようになります。

scp -oProxyJump=I R:remote_file localfile

ユーザー名が異なる場合は、Iをに変更してuser@IRをに変更しますuser@R

SSHを使用する場合、コマンドは次のようになります。

ssh -J [user@]I [user@]R 

答え2

プロキシを含めるようにSSH設定を編集します。 scpはリモート接続にSSHを使用するため、SSH設定のみを編集できます。 「中間サーバー」をプロキシとして使用します。

ファイルに次の内容を追加します~/.ssh/config

Host target.machine
  User          targetuser
  HostName      target.machine
  ProxyCommand  ssh [email protected] nc %h %p 2> /dev/null

scpその後、リモートサーバーに直接接続するのと同じように使用します。

クレジットが必要な場所にクレジットを提供するには、ここ

関連情報