私からSOCKSによるjvisualVMの使用に関する推奨事項。しかし、やや複雑なトポロジがあります。
ラップトップから起動し、監視したいコンピュータに到達するには、2つの中間ホストを通過する必要があります。
LaptopAtHome -> HostAtWork -> AWS-Bastion -> ThingToObserve
ssh-addを使用して、これらのホップを作成するために必要なキーを処理できます。 AWS-Bastion に SSH 秘密鍵を残してはいけません。次のように、これらすべてをどのように設定しますか?
ssh -v -D 9696 thingtobserve.example.com
私のラップトップから反対側にワームホールを開くか?
また、最初のホップには2番目と3番目のホップとは異なる秘密鍵を使用する必要があります。 ssh-addを使用して両方のキーを起動ホストにロードしました。
いくつかの研究によると、次のような試みがなされた。
#!/bin/sh
noknown="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
ssh -A -t -t -v -L9999:localhost:9932 first ssh -A $noknown -t ec2-user@bastion ssh -A $noknown -t -D 9932 ec2-user@target
「権限拒否」のため失敗します。
私は簡単な最初のステップを試しました。
ssh -t -v -A first ssh -A -t -v $noknown ec2-user@bastion
そして、ログは、エージェントの追加キーが「bastion」に提供されていないことを示しています。 ssh -L は始点に表示します。
編集する
ここでの問題のいくつかは、私が最初のホップターゲットとして使用しようとしていた私のオフィスのホストの1つに関連するいくつかの未知の問題であることがわかりました。別のものに変更すると、全体的にクールなシェルを得ることができます。入手できないのがソックスエージェントです。
この質問に対するコメントは、マルチホップソックスエージェントが実際に概念的に難しいことを示唆しているので、これはこの質問の実際の問題です。
編集2
このページマルチホップソックスに関するものだと主張していますが、ポート番号のスペルが間違っているようです。
答え1
まあ、私は答えを見つけました:
ssh -t -v -A -D9932 -L9933:localhost:9933 -L9934:localhost:9934 FIRST-HOST ssh -D9933 -L9934:localhost:9934 -A -t -v ec2-user@SECOND-HOST ssh -D9934 -A -t -v ec2-user@THIRD-HOST
9934 をソックスプロキシポートとして使用します。
必要に応じて明確に.ssh/config
マッピングできます。私の質問の2番目のリンクのクレジットです。
答え2
マルチホッププロキシを使用する代わりに、中間ホストをSSHリレーとして使用して要塞にアクセスします。ここでSOCKSプロキシを設定できます。
ワーカーホストへのアクセスの設定
まず、アクセス設定host-at-work
:
Host host-at-work
User myself
要塞へのアクセスの設定
次に、要塞へのアクセスを設定します。 SSHリレーを使用してhost-at-work
要塞に接続します。
Host bastion
User myself
ProxyCommand ssh host-at-work -W bastion:22
これで、以下を使用して要塞に接続できます。
ssh bastion
SOCKSプロキシ設定
これで要塞に接続できるので、SOCKSプロキシを設定できます。
ssh bastion -D 9932 -N
SSHの最後のホストに接続したいですか?
その後、SSHに要塞をリレーとして使用するように依頼したいと思います。
Host thing-to-observe
User myself
ProxyCommand ssh bastion -W thing-to-observe:22
これにより、次のことができます。
ssh thing-to-observe