node.js - 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
});
谁能建议我如何解决这个问题?
解决方案
推荐阅读
- ios - UIButtons 的动画位置导致它们停止接收触摸动作
- angular - Angular 2 更改检测 - 即使没有任何更改也刷新 DOM
- html - 将文本路径定位为包含圆 SVG 的中心
- android - 如何以编程方式删除android中的默认按钮样式
- c# - 第二个协程不工作 Unity
- javascript - 如何重构这个 RXJS / Angular 代码?
- python - 在 Python 中创建地图图钉标签
- node.js - 如何从一个 docker 容器中获取正在运行的服务列表
- amazon-web-services - 自动部署 AWS API Gateway 阶段
- laravel - 为什么在这种情况下不应该静态调用错误的非静态方法?