他のスレッドで特定のケースを見つけることができませんでした。
基本的に私は自分のPC(ubuntu)、プロキシ(Debian)、そしてターゲット(Debian)を持っています。 PCからプロキシを経由してターゲットにプロキシジャンプしたい。プロキシからターゲットへ、およびPCからプロキシへの認証は公開鍵認証を使用し、各マシンには独自の鍵ペアがあります。
PCのprivkeyは、プロキシのPC pubkeyと一致し、デフォルトのディレクトリにあります。だから、私はssh user@proxy in
PCを実行するだけで、プロキシに正常に接続します。プロキシでは、正常に接続するためにssh -i mypubkey user@targetserver
を指定する必要があります(これはデフォルトのキーではありません)。
さて、PCからは、プロキシでprivkeyを指定する必要があるため、1つのコマンドを実行してターゲットに到達する方法がわかりません。私は試した:
ssh -J user@proxy user@target
ssh -Ao ProxyCommand="ssh -W %h:%p user@proxy" user@target
しかし、それは私にエラー許可が拒否されました(公開鍵)を与えます。
プロキシサーバーで、~/.ssh/config
と/etc/ssh/ssh_config
にIdentityFileディレクティブを追加しようとしましたが、PCからジャンプホストとしてプロキシを呼び出すと、これらのファイルから構成が取得されないようです。
プロキシからPCにprivkeyを持ってきて、たとえば-i
で指定すると、それは機能します(つまり、ssh -i mypubkey -J user@proxy user@target
になります)。だから私の質問は:privkeyをプロキシに保持し、PCで参照して、PCに移動する必要がないようにすることは可能ですか?
[...] privkeyをプロキシに保持し、PCで参照して、PCに移動する必要がないようにすることは可能ですか?
短い答え:いいえ
理由:ローカルPC上のすべての構成ファイル(またはコマンドライン)参照は、ローカルデバイス(PC)にあるファイルに対するものです。 ssh
がアクセスできるPCからのリモート(プロキシ)ファイルを参照することはできませんssh
が接続を確立しようとしているとき
さらに、プロキシでproxy-to-targetアクセス用の秘密鍵を保存したくない場合があります。もしそうなら、それはパスフレーズのないキーでなければならず、それは常に悪いセキュリティ慣行です。一般に、秘密鍵は適切に保護するのが最善です。私の場合、それらは私のローカルマシンにのみ存在し、常に適切なパスフレーズを持っています。
推奨される回避策:ローカルPCのproxy-to-targetキーを使用してセットアップが機能していること。それを続行するか、ssh-agentと転送を使用して、パスワードなしのアクセスを提供します。例~/.ssh/config
エントリ:
Host target
ProxyJump user@proxy
IdentityFile .../target-id_rsa
Host proxy
IdentityFile .../proxy-id_rsa
ForwardAgent yes
すでにローカルエージェントにキーをロードしていることがわかっている場合は、IdentityFile
ディレクティブなしで逃げることができます。