Doble SSH y luego ejecute NC usando el archivo Batch y Plink

Doble SSH y luego ejecute NC usando el archivo Batch y Plink

Buenos días, necesito ejecutar un comando netcat y obtener el resultado para realizar la elaboración en mi PC local (Windows). Solo necesito la "conexión buena/mala"

Ahora uso PuTTY siguiendo el siguiente paso

  • Windows -> Masilla
  • PuTTY -> SSH en "Servidor1" (Linux Suse)
  • Shell del servidor1 -> SSH en "Servidor2" (Linux Suse)
  • Shell del servidor2 ->nc -zv 10.xx.xx.xx yyyy

Me gustaría crear un script simple para automatizar el proceso, estoy intentando hacerlo por lotes y plink. Puedo usar otro software o lenguajes pero no soy realmente un experto

No puedo instalar nada en el servidor Linux, ya que son servidores activos y no puedo hacer muchos intentos pero tengo que ir sin falta. Es necesario realizar estos pasos por un problema de firewall, ya que el servidor 1 no ve el servidor final pero ve el servidor 2, que a su vez ve el servidor final.

Estructuré el siguiente comando pero no estoy seguro si funciona

plink -ssh %server1% -pw %password% -no-antispoof -proxycmd "ssh %User%@%server2% -pw %password%" -m commands.txt > result.txt 2>&1

Respuesta1

Primero, para ejecutar un sshcomando en el servidor1 – para conectarse al servidor2 y ejecutar un comando allí, la sintaxis es:

plink -ssh %server1% -pw %password% -no-antispoof "ssh %User%@%server2% nc -zv 10.xx.xx.xx yyyy" > result.txt 2>&1

Pero necesitas pasar la contraseña a ssh. Para eso, debe agregar -tel cambio a plinkpara habilitar pty y pasar la contraseña del servidor2 como entrada a plink:

echo %password2%|plink -t ...

Tenga en cuenta que esto revelará la contraseña de su servidor2 en la lista de procesos de la máquina local. Pero como ya está haciendo esto con la contraseña del servidor1, probablemente no le importe. Aunque esto último se puede evitar usando -pwfileel interruptor. Y el primero, utilizar otro tipo de redirecciones de entrada.

información relacionada