我有 5 台主机 - A、B、C、D 和 E。A 和 B 是 Windows 主机。C、D 和 E 是在端口 22 上运行 ssh 服务器的 Linux 机器。
我已经在主机 B 中复制了 plink.exe(putty 命令行后端客户端)。当我在 B 中的命令提示符中运行命令 - plink user@host -pw password“要执行的命令”时,它会连接、执行命令并将输出返回到屏幕。
我想通过从远程主机 A 在 B 上执行 plink.exe 来启动到 C 的 ssh 会话,并保持其活动状态直到 A 关闭连接。这可能吗?或者我很笨以至于无法做到这一点...
我在这里尝试做的是控制如何与 linus ssh 主机建立连接。我不想在不同的机器上进行多个 plink 会话,而是希望在主机 B 中拥有一个 plink 副本。使用自定义开发的客户端,我将命令定向到 B,在那里 plink 会话启动,只要客户端从远程主机连接,就会执行命令,一旦客户端关闭,会话就会关闭。
这可能吗?请指教。谢谢。
答案1
我会使用 Sysinternals执行程序从 A 连接到 B,启动远程命令提示符。然后从命令提示符运行 Plink 命令以连接 C 的 ssh 服务,然后断开连接。
您可以从 A 连接到 B(假设您使用相同的名称和密码的用户帐户):
psexec \\B cmd
窗口将切换到 B 的命令提示符,您可以使用 进行确认hostname
。然后运行您的 plink 命令。
唯一的缺点是你需要保持 A 上的远程命令提示符打开,除非你想按照所述运行命令在后台启动 plink这里如果在后台运行,则必须使用 psexec 重新连接到 B,并运行 plink disconnect 命令。
编辑:@JulianKnight 建议使用 Powershell 代替 PSExec,如果您只对本机工具感兴趣,这种方法看起来非常有希望。但是,它确实需要一些设置和配置,而 psexec 则不需要这些设置和配置。请参阅下面评论中的链接。