SSH プロキシコマンドを使用して、あるホストから別のホストにアクセスする

SSH プロキシコマンドを使用して、あるホストから別のホストにアクセスする

ENV には 2 つのジャンプホスト サーバーがあり、リモート サーバーにログインして ssh コマンドを実行しようとします。各場所に ssh/confg ファイルがあり、sshproxy の助けを借りて Jump2 サーバーにアクセスします。すべての場所のサーバーに同時にアクセスできるように、構成ファイルをマージしたいと考えています。

下記参照 ENV
ラップトップ--------> Jumphost1 ---------> Jumphost2--------->リモートサーバー

実際には、ローカル マシンからスクリプトを実行し、出力をローカルに保存する予定です。したがって、このタスクをアーカイブするには、2 つのジャンプホストに ssh を実行し、リモート サーバーで以下のコマンドを実行する必要があります。これにより、ローカル マシンからスクリプトが実行され、ローカル マシン自体に出力が取得されます。

Jump1は2222ポート経由でアクセス可能で、ユーザーは同じユーザーになります

しかし、リモートサーバーにアクセスするには別のユーザー1が必要です

ssh user1@ip < ./script >> file.txt &&

~/.ssh/config を設定します:

ホスト Jump1 ユーザー jump1user ポート 2222 ホスト Jump2 ProxyCommand ssh -W %h:%p Jump1 ユーザー jump2user ホスト RemoveServer ProxyCommand ssh -W %h:%p Jump2 ユーザー remoteUser

上記のファイルを使用すると、問題なく jump2 サーバーに直接ログインできます。ただし、場所ごとに構成ファイルを毎回変更する必要があります。

各リージョンから情報を収集するためのスクリプトで以下の例の ssh コマンドを実行するには、単一の構成ファイルが必要です。

ssh jump2 | ssh user1@remoteserver-ip < ./script >> file.txt &&

答え1

この例では、1 つのファイルのみを使用できるようになります。

Host *
    User username
    IdentityFile /home/username/.ssh/identity

Host some*
    ProxyCommand /usr/bin/ssh -p 2222 username@jumphost /usr/bin/nc %h %p 2> /dev/null

Host other*
    ProxyCommand /usr/bin/ssh -p 2222 username@otherjumphost /usr/bin/nc %h %p 2> /dev/null

Host something
    HostName 1.2.3.4

Host somethingelse
    HostName 2.3.4.5

Host otherthing
    HostName 3.4.5.6

答え2

Host remotehost
    ProxyCommand /usr/bin/ssh -p 2222 username@jumphost /usr/bin/nc %h %p 2> /dev/null

説明されているように、ジャンプホストはポート 2222 でのみアクセス可能なので、その事実をプロキシ SSH 接続に伝える必要があります。

質問のさらなる編集により、実際にはプロキシするホストを指定すると、少し複雑になりますが、それほど複雑ではありません。

  • local.example.com- 直接作業するホスト
  • jump1.example.com- 直接接続するホストlocal
  • jump2.example.com- 直接接続するホストjump1
  • endpoint.example.com- 最終的に接続するホスト

local.example.com、SSH 構成に以下を追加します。

host endpoint.example.com
    ProxyCommand /usr/bin/ssh -p 2222 [email protected] /usr/bin/nc %h %p 2> /dev/null

jump1.example.com、SSH 構成に以下を追加します。

host endpoint.example.com
    ProxyCommand /user/bin/ssh -p 2222 [email protected] /usr/bin/nc %h %p 2> /dev/null

これで、両方のプロキシからアクセスできるようになります。ssh [email protected]local.example.com

関連情報