要塞ホストの概念は、コンピューティングにとって目新しいものではありません。バストンホストは通常、ファイアウォールやその他の制限された場所の背後にあるシステムへのエントリポイントとして機能する、公開された強化されたシステムであり、クラウドコンピューティングの台頭で特に人気があります。
ssh
コマンドには、要塞ホストを利用して1つのコマンドでリモートホストに接続する簡単な方法があります。最初に要塞ホストにSSHで接続し、次にssh
を使用する代わりに リモートホストに接続する要塞で、ssh
ProxyJump
を使用して、最初の接続と2番目の接続自体を作成できます 。
ProxyJump
ProxyJump
、または-J
フラグ、ssh
で導入されました バージョン7.3。これを使用するには、-J
の後に接続する要塞ホストを指定します フラグとリモートホスト:
$ ssh -J <bastion-host> <remote-host>
ホスト間で異なる場合は、特定のユーザー名とポートを設定することもできます。
$ ssh -J user@<bastion:port> <user@remote:port>
ssh
man(またはマニュアル)ページ(man ssh
)一連のホストをジャンプするために、複数のコンマ区切りのホスト名を指定できることに注意してください。
$ ssh -J <bastion1>,<bastion2> <remote>
この機能は、要塞と最終的なリモートホストの間に複数のレベルの分離がある場合に役立ちます。たとえば、ホストの「ウェブ層」セットへのアクセスを許可するパブリック要塞ホストには、さらに保護された「データベース層」グループがアクセスされる可能性があります。
~/.ssh/config
のプロキシホストをハードコーディングします
-J
フラグは、必要に応じてプロキシホストとリモートホストを簡単に指定するための柔軟性を提供しますが、特定の要塞ホストを定期的に使用して特定のリモートホストに接続する場合は、ProxyJump
構成は~/.ssh/config
で設定できます リモートホストに向かう途中で要塞に自動的に接続するには:
### The Bastion Host
Host bastion-host-nickname
HostName bastion-hostname
### The Remote Host
Host remote-host-nickname
HostName remote-hostname
ProxyJump bastion-host-nickname
上記の設定例を使用すると、ssh
接続は次のように行われます:
$ ssh remote-host-nickname
ssh
コマンドは最初に要塞ホストbastion-hostname
への接続を作成します (リモートホストのProxyJump
でニックネームで参照されているホスト 設定)リモートホストに接続する前に。
代替:stdinとstdoutの転送
ProxyJump
ssh
という機能を使用する簡単な方法です 長い間持っていた:ProxyCommand
。 ProxyCommand
プロキシまたは要塞ホストを介してリモートマシンから標準入力(stdin)および標準出力(stdout)を転送することで機能します。
ProxyCommand
それ自体は、リモートサーバーに接続するために使用される特定のコマンドです。前の例の場合、それは手動のssh
になります。 要塞に最初に接続するために使用されるコマンド:
$ ssh -o ProxyCommand="ssh -W %h:%p bastion-host" remote-host
%h:%p
-W
への引数 上記のフラグは、標準をリモートホストに転送することを指定します(%h
)およびリモートホストのポート(%p
。
ProxyCommand
~/.ssh/config
内
ProxyJump
と同様 、ProxyCommand
~/.ssh/config
で設定できます この構成を常に使用するホストのファイル:
Host remote-host
ProxyCommand ssh bastion-host -W %h:%p
~/.ssh/config
のこの設定で 、任意のssh
リモートホストへの接続は、bastion-host
からの安全な接続を介してstdinとstdoutを転送することによって実現されます。 。
ssh
コマンドは強力なツールです。ほとんどの場合、最も単純な形式で使用されますが、ssh user@hostname
、文字通り何十もの用途があり、あるホストから別のホストに接続するためのフラグと構成があります。 ssh
をチェックしてください のマニュアルページ(man ssh
)この一見単純なプログラムで利用できるさまざまなオプションのすべてを発見するときがあります。