Я установил пакет ssh2 для узла, но не могу заставить работать аутентификацию на основе хоста.Аутентификация на основе хоста ssh с использованием nodejs
var Connection = require('./node_modules/bis-package/node_modules/ssh2');
var conn = new Connection();
conn.on('ready', function() {
conn.exec('cmviewcl -v -f line', function(err, stream) {
if (err) throw err;
stream.on('exit', function(code, signal) {
console.log('Stream :: exit :: code: ' + code + ', signal: ' + signal);
}).on('close', function() {
console.log('Stream :: close');
conn.end();
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDERR: ' + data);
});
});
}).connect({
host: 'server',
port: 22,
username: 'root'
});
Я получаю следующую ошибку
Error: Authentication failure. Available authentication methods: publickey,gssapi-with-mic,password,hostbased
at Connection._tryNextAuth (/opt/bis/node/node_modules/bis-package/node_modules/ssh2/lib/Connection.js:1010:13)
at onUSERAUTH_FAILURE (/opt/bis/node/node_modules/bis-package/node_modules/ssh2/lib/Connection.js:2449:8)
at Parser.<anonymous> (/opt/bis/node/node_modules/bis-package/node_modules/ssh2/lib/Connection.js:141:5)
at Parser.emit (events.js:98:17)
at Parser.parsePacket (/opt/bis/node/node_modules/bis-package/node_modules/ssh2/lib/Parser.js:488:12)
at Parser.execute (/opt/bis/node/node_modules/bis-package/node_modules/ssh2/lib/Parser.js:249:14)
at Socket.<anonymous> (/opt/bis/node/node_modules/bis-package/node_modules/ssh2/lib/Connection.js:536:18)
at Socket.emit (events.js:95:17)
at Socket.<anonymous> (_stream_readable.js:748:14)
at Socket.emit (events.js:92:17)
Мы используем проверку подлинности на основе хоста, который позволяет нам пароль бесплатно логины. В Perl я использую следующее:
my($SSH) = "/usr/bin/ssh -t -o PreferredAuthentications=hostbased 2>/dev/null";
$run->run(map { qq{$SSH $_ "$CMD"} } @hosts);
Я не знаю, как я мог бы сделать это с nodejs ssh2 пакета. Любая идея, как я мог это сделать?
Спасибо. Любая запланированная дата уже? – Chris
Еще нет, недавно я сделал довольно большой [рефактор] (https://github.com/mscdex/ssh2/tree/rewrite) и в процессе написания тестов. После этого я планирую добавить поддержку hosthased auth, ключи PuTTY и, возможно, поддержку еще нескольких расширений openssh. – mscdex
спасибо. Отличная работа, которую вы сделали! – Chris