
У меня есть несколько конечных точек, к которым я хотел бы подключиться по SSH, например, Powershell Remoting
чтобы запускать скрипты для автоматизации.
Как можно централизовать доступ?
- Конечные точки будут подключаться
SSH
к центральному серверу. - Конечные точки будут держать это
SSH
соединение открытым - Мне нужно будет создать универсальный доступ по 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
В вашем первом сценарии у вас есть
- Клиент --SSH-> Сервер
- Клиент ожидает сеанса SSH от сервера, используя это соединение.
- Сервер --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\>'