とにかくSSHゲートウェイサーバーをセットアップする方法はありますか?私がセットアップしようとしているのは、ポート番号を使用せずにインターネットからリモートでLAN上の特定のLinuxシェルに接続する方法です。たとえば、ログインすると次のようになります
_ssh server1.domain.com
_
または
_ssh server2.domain.com
_
ssh domain.com:(portnumber)
の代わりに、サーバーのプライベートIPアドレスのポート22へのポート転送マップ_(portnumber)
_
各サーバーはプライベートIPアドレスを持ち、パブリックIPを共有します。
ありがとうございました
ssh
はドメインおよびサブドメインの概念を使用しないため、これは説明した方法では不可能です(HTTPの場合のように、ホスト名はプロトコルの一部ではありません)。ホスト名はIPアドレスを取得するためだけに使用され、使用されています(もちろんポートも使用されています)。あなたの概念は、この質問をするときにおそらく持っていないパブリックIPアドレスのリストがある場合にのみ機能します。
このケースは一般にjumpbox
サーバーを使用して解決されます。ここでは、パブリックIPを使用して接続し、そこからローカルネットワーク(ローカルDNS名の可能性があります)が表示されます。これを使用する必要があります、例えば:
ssh -t jumpbox ssh anotherhost.localdomain
ただし、クライアント構成でProxyCommand
を使用して簡略化できます。
Host *.localdomain
ProxyCommand ssh -W %h:%p jumpbox
そして、遠くのノードへの接続は透過的です。入力すると
ssh anotherhost.localdomain
jumpbox
経由でターゲットホストに移動します。
以下は、SSHゲートウェイサーバーをセットアップするコマンドです。
$ ssh -L 2222:secureserver:22 user@gateway cat -
プロンプトが表示されたらパスワードを入力します(とにかく公開鍵認証を使用する必要があります)。この後、別の端末で、これを使用してセキュアサーバーに接続します。
$ ssh -p 2222 user2@localhost
それでおしまい。これで、ssh、scp、またはその他のコマンドを使用して、ゲートウェイを介してセキュアサーバーと直接通信できます。最初のコマンドを1回だけ実行し、非表示のターミナルで実行し続ける必要があります。