Node ssh2:TypeError:<Object>不是构造函数。

3

我的Node版本是 v14.17.0,ssh2版本是 1.1.0。链接 https://www.npmjs.com/package/ssh2

我尝试使用以下代码建立连接,但出现了错误TypeError: NodeSSH is not a constructor

我也尝试过

var NodeSSH= require('ssh2');

var c = new NodeSSH();


并且
var NodeSSH= require('ssh2').Client;

并且

const {NodeSSH} = require('ssh2');
const c = new NodeSSH();

c.on('keyboard-interactive', function(name, instructions, instructionsLang, prompts, finish) {
    console.log('Connection :: keyboard-interactive');
    finish(['pswd']);
    }).on('end', function() {
        console.log('Connection :: end');
        console.log(callback());
    }).on('error', function(error) {
        console.log(error);
    }).connect({
        host: 'XX.XX.XXX.XXX',
        username: 'usr',
        port: "22",
        tryKeyboard: true,
        debug: console.log
    });

我似乎无法弄清楚是什么导致了这个问题。


2
使用 const { Client } = require("ssh2");,它会起作用。 在此处查看文档 https://www.npmjs.com/package/ssh2 - Rahul Kumar
1个回答

2

我认为你应该这样做,你获取实例的方式不正确。


const { Client } = require('ssh2'); // it exports Client not NodeSSH

const conn = new Client();

conn.on('keyboard-interactive', function(name, instructions, instructionsLang, prompts, finish) {
    console.log('Connection :: keyboard-interactive');
    finish(['pswd']);
    }).on('end', function() {
        console.log('Connection :: end');
        console.log(callback());
    }).on('error', function(error) {
        console.log(error);
    }).connect({
        host: 'XX.XX.XXX.XXX',
        username: 'usr',
        port: "22",
        tryKeyboard: true,
        debug: console.log
    });

虽然您已经在问题中分享了它,但我建议您查看文档以了解如何使用它。我建议您再仔细阅读一遍。


1
啊,谢谢。我因为还使用了ssh2-sftp-client并且对nodejs非常陌生,所以只是更改了名称。 - eemilk
当你是新手时,这种情况很正常。 - Apoorva Chikara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接