我想使用ssh2库nodejs从远程服务器获取文件。我的代码似乎对用户“xyz”正常工作。但是,实际用户的格式为“abc \ xyz”,其中abc是域,xyz是实际用户。当我运行与用户相同的代码为“abc \ xyz”时,我不断收到错误: “sftp error:{[ERROR All configured authentication methods failed] level:'client-authentication'}”nodejs ssh2身份验证失败
我是能够手动使用这个用户作为“xyz \ abc”@hostname的ssh,但由于某种原因,这在代码中失败。我错过了什么吗?
由于某些限制不能在这里提供确切的代码,但下面是做一些必要的修改后的相关代码,以掩盖变量:
else {
// Provide an SFTP interface remote files
var conn = new ssh2();
conn.on('ready', function() {
logger.info('sftp connection ready');
conn.sftp(function(err, sftp) {
if(err) throw err;
refreshRemoteFiles(sftp);
});
}).on('error', function(err) {
logger.info('some text +variable: '+variable value);
logger.info('some text +variable'+variable value);
logger.info('some text +variable'+varibale value);
logger.info('some text: sftp error:', err);
}).connect({
host: hostname,
port: 22,
username: username,
password: password
// debug: function(str) { logger.debug('sftp debug: %j', str); }
});
}
您可以显示一些相关的代码? – Trott
这很难遵循。代码很难在注释中进行格式化,而注释并非针对冗长的内容而设计的。只需编辑您的问题并将代码放在那里。谢谢! – Trott
只是为了澄清它确实拿起用户名的价值(记录器部分): 用户名被选为abc \ xyz。另外,我尝试了不同的组合,例如将用户名设为“'abc \ xyz'”,以便传递给sftp接口的实际用户名是'abc \ xyz' –