パスワードを入力することなく、2ホップSSHセッションを介してリモートログファイルをコピーします。

パスワードを入力することなく、2ホップSSHセッションを介してリモートログファイルをコピーします。

パスワードを入力せずに、ゲートウェイ サーバー経由でリモート PC からローカル PC にログ ファイルを取得したいと考えています。ゲートウェイ サーバーは acctA@gatewayServer を使用します。リモート PC は acctB@remotePC を使用します。

ゲートウェイとリモートの両方に SSH 秘密/公開キーを設定しました。

ローカル PC から、次のコードを使用して、2 つのアカウントのパスワードを入力することなく、2 ホップ経由で直接 remotePC に SSH 接続できました。 ssh acctA@gatewayServer -t ssh acctB@remotePC

しかし、ProxyCommand で SCP を使用すると、acctB のパスワードを求められます。なぜでしょうか?

scp -Cp -o "ProxyCommand ssh -q acctA@gateway -W remotePC:22" acctB@remotePC:/opt/logpath/log1.tgz log01.tgz

アドバイスをいただける方には、事前に感謝と謝意を表します。

答え1

最も簡単なのは、これらの行を.ssh/configファイル:

  Host remotePC
  User          acctB
  HostName      remotePC
  ProxyCommand  ssh AcctA@gatewayServer nc %h %p 2> /dev/null

これを使用すると、次の方法で簡単にファイルを接続またはコピーできます。

  ssh remotePC
  scp acctB@remotePC:/home/AcctB/somefile .

これを動作させるには、netcat (いいえ) コマンドがゲートウェイ サーバーにインストールされます。

どうしてもワンライナーにこだわりたいなら(でも、私はこれらすべてのことを覚えることはできません)、ここにあります:

ssh -o "ProxyCommand ssh acctA@gatewayServer nc -w 1 %h 22" acctB@remotePC

SCPについても同様です。

関連情報