我有一台设备,我通过SSH连接到它。通常我使用Putty来执行命令。
我想使用NodeJS通过SSH执行一系列命令,而不是使用putty手动输入。
我开始寻找nodejs ssh客户端库,我尝试了所有这些 - 无法找到如何使用它们。
我想做的事情:
我尝试了两个选项:
使用ssh2库(连接成功后的代码):
var Client = require('ssh2').Client;
var conn = new Client();
conn.on('ready', function() {
console.log('Client :: ready');
conn.exec('en', function(err, stream) {
stream.write('lab');
stream.write('\n');
stream.write('dir');
stream.on('data', function(data) {
console.log(''+data);
});
stream.on('close', function(data) {
console.log('Strean closing: '+data);
})
});
输出:
使用node-ssh
ssh.connect({
host: 'device-ip',
username: 'user',
password: 'pass'
}).then(function (result1) {
console.log('Connected!');
console.log('Executing "en" with demo input');
ssh.execCommand('en', { stdin: 'demo'}).then(function (enable) {
console.log(enable.stderr);
console.log(enable.stdout);
console.log('Executing "dir"');
ssh.execCommand('dir').then(function (result2) {
console.log('dir worked!');
console.log(result2.stderr);
console.log(result2.stdout);
res.send(result2.stderr);
});
})
})
输出:
知道我在这里缺少什么/如果有更好的方法吗?