SSH命令输出到终端,但不能在Electron中登录控制台



我正试图通过Node JS和Electron连接到一台使用SSH的机器。这是我的例子:

var command = spawn('ssh', ['-i', '.ssh/mykey', 'ubuntu' + '@' + 'blah.blah.blah']);
command.stdout.on('data', (data) => {
console.log(`out ${data}`);
});
command.stderr.on('data', (data) => {
console.log(`err ${data}`);
});

我正在将所有消息输出到stdout和stderr,除了那些需要用户输入的消息。例如,当第一次连接到机器时,以下消息不会打印到开发工具console.log,而是打印到我的调试终端窗口:

The authenticity of host 'blah.blah.blah (10.10.10.10)' can't be established.
RSA key fingerprint is 
a4:d9:a4:d9:a4:d9a4:d9:a4:d9a4:d9a4:d9a4:d9a4:d9a4:d9.
Are you sure you want to continue connecting (yes/no)?

我知道有这样的选择

-o "StrictHostKeyChecking=no"

但是,我不想禁用这个安全功能。我仍然想要提示和用户说(是/否(的选项

知道我如何将这种类型的消息输入电子应用程序的控制台日志吗?

我能够通过向ssh生成命令添加详细标记(-v(来获得此事件

然而,在使这个多操作系统独立之后,在节点中使用npmsh2模块要容易得多,并且可以自动处理等步骤

最新更新