首页 > 解决方案 > npm 包到 ssh 到没有密码的服务器 nodejs

问题描述

我正在使用 ssh2 包通过 ssh 连接到服务器。默认情况下,当我从 cmd 行连接到服务器时,我不必传递密码,因为我们共享了 ssh 密钥。我在 ssh abcuser@server 上连接,我会自动连接。但是使用 ssh2,如果我不提供密码,它会抱怨说 - 错误:所有配置的身份验证方法都失败

下面是我的代码-

conn.exec(request.scriptName, function(err, stream) {
                if(err){
                    logger.error('Failed to execute via ssh. ERROR: '+ err);
                    logger.exitAfterFlush(1);
                }
                stream.on('close', function(code, signal) {
                   conn.end();
                }).on('data', function(data) {
                    let outputJson = JSON.parse(data.toString());
                    logger.info('Task Succeeded', {'output':outputJson});
                    logger.exitAfterFlush(0);
                }).stderr.on('data', function(data) {
                    let details = {'details':data.toString()};
                    logger.error('Task Failed',{'output':details});
                    logger.exitAfterFlush(1);
                });
            });
        }).connect({
            host: request.hostName,
            port: 22,
            username: abcuser
        });

谁能建议我如何解决这个问题?

标签: node.js

解决方案


推荐阅读