双击 SSH,然后使用批处理文件和 Plink 执行 NC

双击 SSH,然后使用批处理文件和 Plink 执行 NC

早上好,我需要执行 netcat 命令并获取输出以在本地 PC(Windows)上进行详细说明。我只需要“连接良好/不良”

现在我使用 PuTTY 按照以下步骤操作

  • Windows -> PuTTY
  • PuTTY -> “Server1” 上的 SSH(Linux Suse)
  • 服务器 1 shell -> “服务器 2” 上的 SSH(Linux Suse)
  • 服务器2外壳->nc -zv 10.xx.xx.xx yyyy

我想创建一个简单的脚本来自动化这个过程,我正在尝试通过批处理和 plink 来实现。我可以使用其他软件或语言,但我并不是真正的专家

我无法在 Linux 服务器上安装任何东西,因为它们是实时服务器,我无法进行太多尝试,但我必须确保万无一失。必须执行这些步骤来解决防火墙问题,因为服务器 1 看不到最终服务器,但可以看到服务器 2,而服务器 2 又可以看到最终服务器

我构造了以下命令,但不确定它是否有效

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

答案1

首先,要ssh在 server1 上执行命令 - 连接到 server2 并在那里执行命令,语法是:

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

但是您需要将密码传递给ssh。为此,您需要添加-t开关plink以启用 pty 并将 server2 的密码作为输入传递给plink

echo %password2%|plink -t ...

请注意,这将在本地计算机的进程列表中显示您的 server2 的密码。但由于您已经对 server1 的密码执行了此操作,因此您可能不介意。虽然后者可以使用-pwfileswitch 来避免。而第一种,则使用其他类型的输入重定向。

相关内容