[英]node.js connection error ECONNRESET on remote windows ssh
我在远程Windows服务器上安装了openssh并使用putty.Now我想通过node.js连接到远程服务器,因此安装了一个包“simple-ssh”。 这个包也可以正常使用远程linux服务器,但抛出了Windows服务器的错误。
这是我的代码文件,
var SSH = require('simple-ssh');
var ssh;
ssh = new SSH({
host: 'XXX.XXX.XX.101',
user: 'username',
pass: 'password'
});
var command = 'typeperf "\\Processor(_Total)\\% Processor Time"'
console.log('command :'+command)
ssh.exec(command, {
out: function(stdout) {
console.log(stdout);
}
}).start();
ssh.on('error', function(err) {
console.log('something went wrong.');
console.log(err);
ssh.end();
});
以下错误我进入控制台,
command :typeperf "\Processor(_Total)\% Processor Time"
something went wrong.
{ Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:111:27)
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'read',
level: 'client-socket' }
请注意,当我使用putty会话执行或使用var command = 'ping -t XXX.XXX.XX.101'
时,它可以正常工作,但不能使用var command = 'typeperf "\\\\Processor(_Total)\\\\% Processor Time"'
通过node.js脚本。 请帮助解决这个问题,因为我已经挣扎了几个星期。
提前谢谢了。
我自己解决了这个问题。 经过大量的努力和打击和试验后,我才知道这主要是因为在输入字符串中处理双引号。 我通过在双引号之前放置转义字符并解决问题来解决这个问题。
我变了
var command = 'typeperf "\\Processor(_Total)\\% Processor Time"'
至
var command = 'typeperf \\"\\Processor(_Total)\\% Processor Time\\"'
它奏效了。 :-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.