我正在用Delphi ( Windows)编写一个控制台应用程序,它在后台使用plink.exe通过ssh (重定向标准输入和标准输出)连接到设备。
我的包装器使用的是plinkremote组件(http://www.delphipraxis.net/70989-komponente-fuer-ssh-verbindung-6.html)。
为了启动连接,我让包装器向用户询问用户名和密码,然后运行命令plink -pw " password“user@ server,它连接,我通过包装器连接到服务器。
除了一个例外:如果我输入的密码不正确,最新版本的plink (ver.0.63)提出了“交互式键盘认证”,并要求输入密码。在这一点上,我的包装器停止工作。无论我输入什么,都不会被转发到服务器,唯一的办法就是一起关闭命令提示符窗口。我找到了一种禁用这种“交互式身份验证”的方法(通过在禁用它的情况下保存putty会话,并在我的包装器中加载该会话),但是plink仍然要求输入密码,并且我的包装器停止以同样的方式工作。
在过去的几天里,我一直在试图找出它停止工作的原因。我不确定in- or输出是否被重定向到其他地方(只有当plink要求输入密码时)。我更喜欢plink,如果它不能通过身份验证,那么就关闭连接,然后我可以立即尝试再次连接,希望输入正确的密码并被连接。以前版本的plink (版本0.60)就是这样。当然,我更喜欢使用最新的plink版本,所以我想弄清楚当plink无法使用给定的凭据进行连接时会发生什么。
我进行了搜索,但找不到这个问题的解决方案-唯一听起来类似问题的问题没有得到回答(https://stackoverflow.com/questions/19458241/redirecting-the-dev-tty-for-a-plink-command)。
有没有人知道可能出了什么问题,或者如何完全禁用plink中的密码问题?
谢谢!
发布于 2016-05-07 04:48:07
这是一个很好的链接参考:
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 MyWeakestPasswordEverhttps://stackoverflow.com/questions/23642630
复制相似问题