
パスワードを入力せずに、ゲートウェイ サーバー経由でリモート 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についても同様です。