私はsshのProxyCommand機能の使用に慣れており、それを使用して複数の要塞ホストをホップして、最終的なホストに効率的に到達できます。しかし、私はそれが実際にバックエンドでどのように機能するのか理解できないようです。
たとえば 次の設定ファイルがあります。
Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh user@bastion.com -W %h:%p"
ホストfinal
への接続では、への接続を行う前にProxyCommandが実行されることを理解していますfinal.com
。しかし、それでも接続の順序を理解できていないようです。
そして、オプション-W %h:%p
は何をしますか?これはnetcat機能であり、に似ていることを理解していnc %h %p
ます。
私の理解がここにある限り、操作のシーケンスです。私が間違っているかどうか親切に私に知らせてください。私の例では、上で指定した構成ファイルを使用します。
- ユーザーが入力します
ssh final
- bastion.comへのssh接続が作成されました。
- netcatトンネルは、bastion.comからfinal.comのポート22に作成されます。netcatのstdinは、bastion.comへの接続で取得されたシェルに接続されます。
- これで、システムからfinal.comに接続できました。この接続の前半は、システムからbastion.comへのssh接続です。この接続の後半は、bastion.comからfinal.comへのnetcatトンネルです。
- 今
ssh final
のコマンドは、プロキシとして上記の接続を取り、この既存の接続を介してデータをトンネルします。
さらに、この手法がSSHスタッキングとしても知られているかどうかも知りたいのですが?
追加された改行