【发布时间】:2021-02-19 01:44:41
【问题描述】:
尝试通过 SSH 连接到服务器并且能够。但是,当我尝试运行 sudo 命令时,它会提示我输入提到的用户 ID 的密码。如何防止任何键盘中断并对密码进行硬编码,使其不会提示输入密码。
server.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
【问题讨论】:
-
同样的问题,但无法给出任何答案:(
-
@Aabid 我实际上有解决方案。让我在这里添加解决方案。
标签: javascript node.js ssh ssh2