多数のデバイスへの SSH アクセスを集中化しますか?

多数のデバイスへの SSH アクセスを集中化しますか?

Powershell Remoting自動化用のスクリプトを実行できるように、SSH 経由で接続したいエンドポイントがいくつかあります。

アクセスを集中化するにはどうすればよいですか?

  1. SSHエンドポイントは中央サーバーに接続します
  2. エンドポイントはこのSSH接続を開いたままにします
  3. SSHサーバーで終了するエンドポイントへの SSH 経由のユニバーサル アクセスを作成する必要があります。ユニバーサル アクセスとは、理想的には、同じネットワーク上のデバイスがこれらのオープン接続をどのような目的でも利用できることを意味しますSSH

ステップ3について少し混乱しています。

  • 中央サーバーで 、 などを実行SSHしてPowershell、リモートアクションを実行して接続することしかできないのでしょうか?PuTTYRemote Desktop
  • SSHこのサーバー経由で SSH 接続を一般ネットワークに「持ち込む」ことで、同じネットワーク上のデバイスが中央サーバー経由で SSH 経由でシステムに接続できるようになるでしょうか?
  • 同じネットワーク上のデバイスからPowershell、 、Remote Desktopまたはその他のアイテムを実行するために、複数のエンドポイントを SSH 経由で中央サーバーに接続するためのより良い方法はありますか?SSH

デバイスは、WindowsまたはLinux

私の推測では:

  • 複数のリモートネットワークの各エンドポイントはSSH経由でLan XのSSHサーバーに接続します。
  • Lan X上のデバイスは、Lan X上のSSHサーバーにSSHで接続する必要がある。
  • SSHサーバーにSSH接続すると、Lan X上のデバイスはPowershellエンドポイントでスクリプトやその他のSSHアイテムを実行できるようになります。

答え1

最初のシナリオでは、

  1. クライアント --SSH-> サーバー
  2. クライアントはこの接続を使用してサーバーからのSSHセッションを待機します
  3. サーバー --SSH-> クライアント、コマンドの実行など

これはSSH リバース トンネル設定も非常に簡単です:

# On client, create an open tunnel from Client:22 -> Server:2222
ssh -R 2222:localhost:22 user@Server

# On server, connect to local 2222, and you're connected to that session
ssh -p 2222 user@localhost

各クライアントは別々のポートに接続する必要がある

他のクライアントがそれらのセッションを使用できるようにするには(クライアント1 -> サーバー <- クライアント2など)、クライアントからサーバーにSSHで接続し、上記のようにトンネルに接続するだけです。

リストへどのクライアントがどのポートに接続されているかを確認するには、サーバー (Linux) でこれを実行できます。

 % sudo lsof -i -n | egrep '\<sshd\>'

関連情報