SSH命令输出到终端,但不输出到Electron中的控制台日志

时间:2018-07-27 08:21:45

标签: node.js 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"

但是,我不想禁用此安全功能。我仍然希望用户输入提示和选项(是/否)

您知道如何将这种类型的消息发送到电子应用程序的控制台日志中吗?

1 个答案:

答案 0 :(得分:1)

我能够通过在ssh spawn命令中添加详细标签(-v)来获取此事件

但是,在使该多操作系统独立之后,在节点中使用npm ssh2模块要容易得多,并且可以自动处理此类步骤