Централизация SSH-доступа ко многим устройствам?

Централизация SSH-доступа ко многим устройствам?

У меня есть несколько конечных точек, к которым я хотел бы подключиться по SSH, например, Powershell Remotingчтобы запускать скрипты для автоматизации.

Как можно централизовать доступ?

  1. Конечные точки будут подключаться SSHк центральному серверу.
  2. Конечные точки будут держать это SSHсоединение открытым
  3. Мне нужно будет создать универсальный доступ по SSH к конечным точкам, которые заканчиваются на сервере. Под универсальным доступом я подразумеваю, что устройства в одной сети в идеале смогут использовать эти открытые SSHсоединения для любых SSHцелей.

Я немного запутался в шаге 3.

  • Смогу ли я выполнять удаленные действия и подключаться только SSHзапустив Powershell, PuTTYи Remote Desktopт. д. на центральном сервере?
  • Смогу ли я «внедрить» SSH-подключения через этот SSHсервер в общую сеть, чтобы устройства в той же сети могли подключаться к системам по SSH через центральный сервер?
  • Существует ли лучший способ подключения нескольких конечных точек по SSH к центральному серверу для запуска Powershell, выполнения Remote Desktopили других SSHэлементов с устройств в одной сети?

Устройства могут быть WindowsилиLinux

Я догадываюсь:

  • Каждая из конечных точек из нескольких удаленных сетей подключается по SSH к серверу SSH в локальной сети X.
  • Устройствам в локальной сети X необходимо будет подключиться по протоколу SSH к серверу SSH в локальной сети X.
  • После подключения по 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\>'

Связанный контент