Scenerio:我想通过ssh从Java程序在远程机器上运行命令(我在开发机器上使用OpenSSH).我还希望通过传递密码而不是像'expect'那样设置密钥来建立ssh连接.所以我没有错过标准错误...当我使用'-v'选项运行ssh时,我看到流中的所有日志记录但我没有看到提示.这是我第一次尝试使用ProcessBuilder这样的东西.我知道使用Python,Perl或者好的OL会更容易,但是我的老板想在现有的Java程序中利用我们想要的东西(远程日志文件和运行脚本),所以我有点卡住了.
问题:当尝试执行'expect'之类的密码登录时,使用ProcessBuilder创建的Process似乎看不到密码提示.当运行常规的非ssh命令(例如'ls')时,我可以获得流并与它们进行交互.我将标准错误和标准输出结合到一个流中redirectErrorStream(true);
在此先感谢您的帮助!