1つのIP、複数のゲスト、同じポート22

1つのIP、複数のゲスト、同じポート22

Nginxを使用してポート80のドメインを正しい仮想マシンにリダイレクトしていますが、ポート22でSSHを使用してこれを実行できるかどうか疑問に思います。ポート22を介してすべてのSSHトラフィックを正しいゲストにリダイレクトしますか?

答え1

いいえ、そうすることはできません。そのプロトコルがサポートされているため、HTTPと連携します。名前ベースの仮想ホスティング.SSH番号

答え2

SSHツールを使用してProxyCommandこれを行うことができます。ファイルに次のコンテンツを追加します$HOME/.ssh/config。存在しない場合は、次の内容にします。

Host remoteserverX
    User userint
    ProxyCommand ssh userext@externalserver nc remoteserverX %p
Host remoteserverY
    User userint
    ProxyCommand ssh userext@externalserver nc remoteserverY %p

その後、次のように他の内部リモートサーバーに接続できます。

$ ssh remoteserverX

-or-

$ ssh remoteserverY

この機能に関しては、これは氷山の一角に過ぎません。次のタイトルのU&L Q&Aをご覧ください。中間サーバーを介したSSHトンネリング - キーペアを使用してワンステップで接続するにはどうすればよいですか?、詳細については。

メモ:上記の方法は、主要なncディストリビューションのリポジトリにある必要がある(netcat)というツールを使用します。

これは、外部システムを介して内部システムにトンネリングするNginxのリダイレクトと全く同じではありませんが、同様の効果があります。

複雑な例

  1. 1つのHostセッション、複数のホスト。

    Host *.mydom.com *
        ProxyCommand ssh externalserver nc %h %p
    
  2. 多くのユーザーのための「ホスト」セクション。

    このHostsセクションをシステム/etc/ssh/ssh_configファイルに追加すると、ボックスにログインしている人なら誰でも利用できます。

関連情報