【发布时间】:2012-10-05 05:01:16
【问题描述】:
我想要什么:我想用 C# 读取 PuttY 窗口的输出
我所拥有的:我们公司拥有数百台服务器,其中至少有 2-3 名技术用户(正在运行应用程序)。我们得到了一个包含所有用户和密码的数据库。所以它基本上是搜索,复制和粘贴登录。
我想做的事:编写一个自动完成此任务的软件。
我有多远: 编写了一个工具,它读取单个 PuTTY 实例的日志文件并查找密码提示。确定目标用户和服务器(基于当前服务器和 su - [用户名])。检索密码并通过 PostMessage 将其发送到选定的 PuTTY。
问题或我想改变什么:
我希望能够直接从 PuTTY 窗口读取 PuTTY 输出,因为日志文件有点不可靠(TAB、ESCAPE 等会扰乱输出)。 我已经使用 UISpy 和其他工具来获取控件,但没有运气。
我不想使用键盘记录机制或类似的东西。
也许是一个钩子或其他东西,但以前从未这样做过。
附加信息:
- 通过 JumpServer 建立连接,只允许从那里到目标服务器的 ssh 连接。
- 使用技术直接登录。用户被禁用。
- PuTTY 窗口已打开并用于在服务器上工作。
- 编写一个全新的连接管理器是不可能的。同事都熟悉 PuTTY,这个解决方案应该是某种独立的后台工作者。
附加信息 2: 目标是编写严格的第 3 方软件。不要使用其他 SSH 库,修改 PuTTY 源或其他方法。问题是:如何从日志文件旁边的 PuTTY 窗口中读取文本。
【问题讨论】:
-
为什么不用
-l和-pw参数开始putty? the.earth.li/~sgtatham/putty/0.53/htmldoc/Chapter3.html#3.7.3 -
您可以找到一个 SSH 库并使用密码管理器编写您自己的客户端。
-
@Albin Sunnanbo:在这里使用参数是行不通的。 putty 与“跳转服务器”的初始连接,允许从该“跳转服务器”连接到目标服务器。另外,直接使用技术登录。用户被禁用。 @ Alan:可以说用sharpssh 编写我自己的应用程序。但是这里的所有工人都使用腻子并且熟悉它。所以我的方法是微创的
-
@mazer ,我有类似的问题,但我写了简单的 IPC,它允许我请求 putty 使用窗口消息在剪贴板中复制指定的文本矩形。然后我简单地读取剪贴板。如果你有兴趣我可以发布我的代码。请注意,您需要从源代码重新编译 PuTTY,但这很简单。