【问题标题】:plink redirection not working correctlyplink 重定向无法正常工作
【发布时间】:2014-07-01 19:10:21
【问题描述】:

我正在用 Delphi(适用于 Windows)编写一个控制台应用程序,它在后台使用 plink.exe 通过 ssh 连接到设备(重定向标准输入和标准输出)。

我的包装器正在使用 plinkremote 组件 (http://www.delphipraxis.net/70989-komponente-fuer-ssh-verbindung-6.html)。

为了启动连接,我让包装器向用户询问用户名和密码,然后运行命令 [plink -pw "password" user@server],它会连接并且我通过包装器连接到服务器。

一切都按预期工作,但有一个例外:如果我输入的密码不正确,最新版本的 plink(0.63 版)会出现“交互式键盘身份验证”并要求输入密码。那时我的包装器停止工作。我输入的任何内容都不会被转发到服务器,唯一的退出方法是一起关闭命令提示符窗口。 我找到了一种禁用这种“交互式身份验证”的方法(通过保存禁用它的 putty 会话并将该会话加载到我的包装器中),但是 plink 仍然会要求输入密码,并且我的包装器停止以相同的方式工作。

在过去的几天里,我试图弄清楚它为什么停止工作。我不确定输入或输出是否被重定向到其他地方(仅当 plink 要求输入密码时)。 如果 plink 无法进行身份验证,我希望 plink 仅关闭连接,然后我可以立即尝试再次连接,希望正确输入密码并连接。以前的 plink 版本(0.60 版)正是这样做的。当然我更喜欢使用最新的 plink 版本,所以我想弄清楚当 plink 无法连接到给定的凭据时发生了什么。

我进行了搜索,但找不到此问题的解决方案 - 唯一听起来是类似问题的问题没有得到解答 (https://stackoverflow.com/questions/19458241/redirecting-the-dev-tty-for-a-plink-command)。

有谁知道可能出了什么问题或如何完全禁用 plink 中的密码问题?

谢谢!

【问题讨论】:

  • 好吧,经过一周的尝试找出 plink 的输入和输出发生了什么,我放弃并认出了 plink 的“用户@服务器密码”问题。如果我看到这个问题,我只需退出我的程序(包装器)以返回命令提示符。根本不是我想做的,但至少我可以像这样使用我的程序,直到我弄清楚 plink 在做什么。
  • 好吧,现在我觉得有点傻。我一定忽略了 plink 的“-batch”选项。有了它,plink 将“禁用所有交互式提示”并且不会要求输入密码,如果它是错误的。我仍然想弄清楚 plink 在做什么,但至少它不会“崩溃”我的包装器。

标签: redirect ssh stdout stdin plink


【解决方案1】:

这是一个很好的 plink 参考:

http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html

这是标准的批处理文件代码

structure: Debug\plink -[connection type] [ipaddress] -l [username] -pw [password]

example: Debug\plink -ssh 192.168.1.1 -l sudo -pw MyWeakestPasswordEver

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 2015-08-09
    • 2015-12-21
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多