web-dev-qa-db-ja.com

プロキシ内のIDファイルのみを使用したSSHプロキシジャンプ

他のスレッドで特定のケースを見つけることができませんでした。

基本的に私は自分の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に移動する必要がないようにすることは可能ですか?

2
Adriano_pinaffo

[...] 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ディレクティブなしで逃げることができます。

4
crimson-egret