SSH ジャンプ ホストで特定の送信バインド アドレスを使用するにはどうすればよいでしょうか?

SSH ジャンプ ホストで特定の送信バインド アドレスを使用するにはどうすればよいでしょうか?

OpenSSH の ProxyJump オプションを使用して、自宅のデバイスからジャンプ ホスト経由でエンド ホストに SSH 接続しようとしています。

x.x.x.xジャンプ ホストには、唯一のインターフェイスにバインドされた 2 つの IP アドレス( と )がありますy.y.y.y。エンド ホストへの SSH アクセスが許可されている IP のホワイトリストを持つファイアウォールがあります。y.y.y.yはリストに載っていますが、x.x.x.x載っていません。

問題は、ジャンプ ホストのデフォルトがx.x.x.x送信 SSH に使用されることです。

-bジャンプ ホストからエンド ホストに手動で ssh する場合は、次のように OpenSSH のオプションを使用してデフォルトを上書きできますssh -b y.y.y.y endhost。これは正常に動作します。

しかし、ジャンプホストを中間として使用して個人デバイスからエンドホストに直接アクセスしようとすると、うまくいかないようです。バインド アドレスを自分のものに指定するいくつかのバリエーションを試しましたが、うまく~/.ssh/configいきませんでした。

ジャンプ ホストに特定のバインド アドレスを使用するように指示する方法はありますか?

答え1

私の設定の問題は、ジャンプホスト送信トラフィックに使用したいIP (x.x.x.xあなたの例) とは異なる IP (あなたの例) を使用するように設定されていました。sshdy.y.y.y

そこで、私にとってうまくいった方法の一つは、ジャンプホストのためにエンドホストのIP。

上のジャンプホスト(私のはUbuntu 20.04を実行しています):

route add -host <endhost's IP>/32 gw y.y.y.1 dev <y.y.y.y's Iface>

ここで、<endhost's IP>は IPv4 のようにn.n.n.n、は のように、 に関連付けられている<y.y.y.y's Iface>インターフェースです。y.y.y.yeth0

参考文献:


注意: 私は特にsshdDigitalOcean の Floating IP を経由するルートを取得することに取り組んでいました。その場合、以下をy.y.y.y使用して検出する必要があります。

curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/address

したがって、そのコマンドが を返す場合10.10.0.7、 は にy.y.y.yなります10.10.0.7

参考文献:

関連情報