¿Centralizar el acceso SSH a muchos dispositivos?

¿Centralizar el acceso SSH a muchos dispositivos?

Tengo algunos puntos finales a los que me gustaría conectarme a través de SSH para Powershell Remotingpoder ejecutar scripts para la automatización.

¿Cómo podría centralizar el acceso?

  1. Los puntos finales se conectarían SSHa un servidor central
  2. Los puntos finales mantendrían esta SSHconexión abierta
  3. Necesitaría crear acceso universal a través de SSH a los puntos finales que terminan en el servidor. Por acceso universal me refiero a que los dispositivos de la misma red idealmente podrían utilizar estas SSHconexiones abiertas para cualquier SSHpropósito.

Estoy un poco confundido acerca del paso 3.

  • ¿Solo podría realizar acciones remotas y conectarme SSHejecutando Powershell, PuTTYetc. Remote Desktopen el servidor central?
  • ¿Podría "traer" las conexiones SSH a través de este SSHservidor a la red general, de modo que los dispositivos de la misma red puedan conectarse a los sistemas a través de SSH a través del servidor central?
  • ¿Existe una mejor manera de conectar varios puntos finales a través de SSH a un servidor central para ejecutar Powershell, ejecutar Remote Desktopu otros SSHelementos desde dispositivos en la misma red?

Los dispositivos podrían ser WindowsoLinux

Estoy adivinando:

  • Cada uno de los puntos finales de múltiples redes remotas se conecta a través de SSH al servidor SSH en Lan X
  • Los dispositivos en Lan X necesitarían SSH en el servidor SSH en Lan X
  • Una vez conectados mediante SSH al servidor SSH, los dispositivos en Lan X ahora podrían ejecutar Powershellscripts y otros elementos SSH en los puntos finales.

Respuesta1

En su primer escenario, tiene

  1. Cliente --SSH-> Servidor
  2. El cliente espera una sesión SSH del servidor usando esta conexión
  3. Servidor --SSH-> Cliente, ejecuta comandos, etc.

Esto se llama untúnel inverso ssh, y es bastante sencillo de configurar:

# 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

Cada cliente necesita conectarse en un puerto separado

Para permitir que otros clientes usen esas sesiones (como Cliente1 -> Servidor <- Cliente2), simplemente SSH del cliente al Servidor, luego conéctese a los túneles como se muestra arriba

Listarqué clientes están conectados en qué puertos, puede ejecutar esto en el servidor (linux):

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

información relacionada