node.js - Node SSH2 sudo 密码

标签 node.js ssh

我正在尝试使用 Node SSH2 包。这是我的代码

var Client = require('ssh2').Client;

var password = 'xxxxxx'
var conn = new Client();
conn.on('ready', function() {
    console.log('Client :: ready');
    conn.exec('sudo ls -la', { pty: true }, function(err, stream) {
        if (err) throw err;
        stream.on('close', function(code, signal) {
            console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
            conn.end();
        }).on('data', function(data) {
            if (data.indexOf(':') >= data.length - 2) {
            stream.write(password + '\n');
            }
            else {
                console.log('STDOUT: ' + data);
            }
        }).stderr.on('data', function(data) {
            console.log('STDERR: ' + data);
        });
    });
}).connect({
    host: 'xxx.xxx.xxx.xxx',
    port: 22,
    username: 'user',
    password: 'xxxxx',
});

// example output:
// Client :: ready
// STDOUT:  17:41:15 up 22 days, 18:09,  1 user,  load average: 0.00, 0.01, 0.05
//
// Stream :: exit :: code: 0, signal: undefined
// Stream :: close

当我运行代码时,它会提示输入密码,如下所示:

Client :: ready
STDOUT: [sudo] password for venafi:

如何将密码写入密码提示中?

最佳答案

好的,我解决了这个问题并更新了我的示例以帮助其他遇到此问题的人。这是我需要的代码。

if (data.indexOf(':') >= data.length - 2) {
            stream.write(password + '\n');
            }
            else {
                console.log('STDOUT: ' + data);
            }

关于node.js - Node SSH2 sudo 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47101197/

相关文章:

ssh - 运行eval `ssh-agent -s`会给出错误

linux - 为什么我不能将文件夹上传到 Linux EC2 实例?

node.js - findOneAndUpdate() 在 upsert 上返回 null 值

postgresql - pg_dump 从远程服务器到本地主机

Java Ganymed Trlead Orion ssh session 超时

ssh - gitlab - ssh_exchange_identification : read: Connection reset by peer

javascript - 返回数据库中插入对象的信息

javascript - 动态路由在 nuxt 中不起作用?

javascript - 调试 gf3/sandbox 模块

javascript - 如何在 Mongoose 中查询对象数组内部的值