【问题标题】:Host-based ssh authentication using nodejs使用 nodejs 的基于主机的 ssh 身份验证
【发布时间】:2014-11-27 09:19:47
【问题描述】:

我已经为 node 安装了 ssh2 包,但无法使基于主机的身份验证正常工作。

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 包做到这一点。 知道我该怎么做吗?

【问题讨论】:

    标签: node.js ssh


    【解决方案1】:

    尚不支持基于主机的身份验证。我计划在即将到来的下一个主要版本中添加对它的支持。相关问题是here

    【讨论】:

    • 还没有,我最近做了一个相当大的refactor 并且正在编写测试。之后,我计划添加对基于主机的身份验证、PuTTY 密钥的支持,并可能支持更多的 openssh 扩展。
    猜你喜欢
    • 2022-11-18
    • 2015-07-12
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多