![あるホストから別のホストへのSSH ProxyCommand [閉じる]](https://linux33.com/image/110070/%E3%81%82%E3%82%8B%E3%83%9B%E3%82%B9%E3%83%88%E3%81%8B%E3%82%89%E5%88%A5%E3%81%AE%E3%83%9B%E3%82%B9%E3%83%88%E3%81%B8%E3%81%AESSH%20ProxyCommand%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
ENVには2つのJumphostサーバーがあり、リモートサーバーにログインし、sshproxyの助けを借りてsshコマンドを実行しようとしています。各場所にssh / confgファイルがあり、Jump2サーバーに入ります。すべてのロケーションサーバーに同時にアクセスできるように構成ファイルをマージしようとしています。
以下のENVノート
ブック-------->
Jumphost1 --------->
Jumphost2--------->
リモートサーバーを参照してください。
実際、私たちはローカルコンピュータでスクリプトを実行し、出力をローカルに保存する予定です。したがって、このタスクをアーカイブするには、2つのジャンプホストにSSHで接続し、リモートサーバーで次のコマンドを実行する必要があります。これにより、ローカルシステムでスクリプトが実行され、ローカルシステム自体から出力が表示されます。
Jump1はポート2222を介してアクセスでき、ユーザーは同じユーザーです。
ただし、リモートサーバーに接続するには別のユーザー1が必要です。
ssh user1@ip < ./script >> file.txt &&
~/.ssh/config を設定します。
ホストジャンプ1ユーザージャンプ1ユーザーポート2222ホストジャンプ2 ProxyCommand ssh -W%h:%pジャンプ1ユーザージャンプ2userホストRemoveServer ProxyCommand ssh - W%h:%pジャンプ2ユーザーリモートユーザー
上記のファイルを使用すると、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
これで、2つのプロキシを介してアクセスできます。ssh [email protected]
local.example.com