尝试通过 SSH 连接到服务器并且能够。但是,当我尝试运行sudo
命令时,它会提示我输入提到的用户 ID 的密码。如何防止任何键盘中断并对密码进行硬编码,使其不会提示输入密码。
服务器.js
const { Client } = require('ssh2');
const conn = new Client();
conn.on('ready', () => {
console.log('Client :: ready');
conn.exec('sudo ls -lrt',{ stdin: 'password\n', pty: true }, (err, stream) => {
if (err) throw err;
stream.on('close', (code, signal) => {
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
conn.end();
}).on('data', (data) => {
console.log('STDOUT: ' + data);
}).stderr.on('data', (data) => {
console.log('STDERR: ' + data);
});
});
}).connect({
host: 'hostname',
port: 22,
username: 'user1',
password: 'password'
});
我得到的提示:
STDOUT: [sudo] password for user1:
STDOUT:
sudo: timed out reading password