Plink 0.83版本为何未通过STDOUT/STDERR输出主机密钥提示?
解决Plink 0.83版本主机密钥提示无法通过标准句柄捕获的问题
PuTTY 0.83版本调整了主机密钥未缓存时的提示输出逻辑,直接将提示写入控制台设备(CON)而非STDOUT/STDERR,导致常规重定向和Wrapper程序无法捕获。以下是几种可行的解决方法:
方法一:用-verbose参数强制输出到STDERR
添加-verbose参数后,Plink会将主机密钥相关的提示信息包含在详细日志中,并输出到STDERR,Wrapper可正常捕获。示例命令:
plink.exe -verbose -pw "password" username@10.1.24.1 > C:\DATA\STDOUT.txt 2> C:\DATA\STDERR.txt
方法二:用-batch参数将交互提示转为错误输出
如果你的自动化场景不需要手动确认主机密钥,可添加-batch参数。此时Plink会因无法进行交互而抛出错误,相关提示会被转为STDERR输出,方便Wrapper捕获处理。示例命令:
plink.exe -batch -pw "password" username@10.1.24.1 > C:\DATA\STDOUT.txt 2> C:\DATA\STDERR.txt
方法三:预缓存或指定主机密钥跳过提示
- 手动连接一次服务器:通过PuTTY或Plink手动连接目标服务器,接受并缓存主机密钥,后续自动化调用时将不再出现提示。
- 直接指定主机密钥:调用Plink时添加
-hostkey参数,传入服务器主机密钥的指纹,直接跳过提示步骤。示例命令:
plink.exe -pw "password" username@10.1.24.1 -hostkey "aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp"
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

