当我从Linux服务器执行远程ssh
命令到Windows时,结果命令不会清空到分配的通道。
ssh命令是:
ssh -vvv -o BatchMode=yes -o ConnectTimeout=40 -o GSSAPIAuthentication=no $1 'cmd.exe /c echo 0'||echo 1 2>>$TempPath/$ErrorFile
从ssh命令的调试中我发现了这一行:
debug1: channel 0: forcing write
它不存在。
相反,当在另一台Windows服务器上执行相同的命令时,此行存在。 从debug ssh log我还注意到,publickey的ssh身份验证已经成功,尽管结果没有发回。 此外,重要的是包含ssh连接测试循环的shell脚本是通过从html页面调用ajax jquery命令来实现的。
如果从linux prompt命令直接执行相同的脚本,那么循环的所有Windows服务器都会正确回复ssh命令。 当从broswer运行时,这不会发生。考虑到用于从broswer运行脚本的“守护程序用户”,他用于从prompt命令运行脚本。 我希望有人帮助我解决这个问题。