Javascript 通过带有ssh密钥和服务器名称的nodejs代码连接ssh服务器

Javascript 通过带有ssh密钥和服务器名称的nodejs代码连接ssh服务器,javascript,node.js,npm,ssh,devops,Javascript,Node.js,Npm,Ssh,Devops,我有vpn访问权限,所以我可以按照终端的命令通过ssh连接到服务器 ssh qa-trinath01.my-qa 从终点站开始工作正常 但是从nodejs来看,它不起作用。我的代码是 var express = require("express"); var app = express(); var node_ssh = require('node-ssh') var ssh = new node_ssh() ssh.connect({ host: 'qa-trinath0

我有vpn访问权限,所以我可以按照终端的命令通过ssh连接到服务器

ssh qa-trinath01.my-qa
从终点站开始工作正常

但是从nodejs来看,它不起作用。我的代码是

var express = require("express");
var app = express();
var node_ssh = require('node-ssh')
var

ssh = new node_ssh()

ssh.connect({
        host: 'qa-trinath01.my-qa',
        username: 'tanantham',
        port: 27017,
        privateKey: '/Users/tanantham/.ssh/id_rsa'
    }).then(function() {
        console.error('Success: ');
    }).catch((error) => {
        console.error('ERROR: ', error);
    });;

app.listen(3001);
我得到的输出是

ERROR:  { Error: getaddrinfo ENOTFOUND qa-trinath01.my-qa qa-trinath01.my-qa:27017
    at errnoException (dns.js:50:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'qa-trinath01.my-qa',
  host: 'qa-trinath01.my-qa',
  port: 27017,
  level: 'client-socket' }
是否有人建议使用nodejs代码连接到ssh,我只有ssh密钥和ssh服务器名称的详细信息

ssh key ->  /Users/tanantham/.ssh/id_rsa
server name -> qa-trinath01.my-qa

您是否尝试将“privateKey”替换为“password”并输入密码。 这可能不是最安全的,但它正常工作。 除非您必须使用id rsa中的私钥

ssh = new node_ssh()

ssh.connect({
        host: 'qa-trinath01.my-qa',
        username: 'tanantham',
        port: 27017,
        password: 'YourPasswordHere'
    }).then(function() {
        console.error('Success: ');
    }).catch((error) => {
        console.error('ERROR: ', error);
    });;

app.listen(3001);

根据文档,私钥没问题??是的,没问题,但根据文档,密码工作也没问题。。实际错误为“getaddrinfo ENOTFOUND”,您认为这可能与此相关吗?p、 但是,我们知道他们使用的是基于用户的身份验证还是基于主机的身份验证吗?你说得对,我的解决方案与其说是解决方案,不如说是权宜之计。但“getaddrinfo ENOTFOUND”意味着客户端无法连接到给定的地址,所以如果它是从终端工作的,我想这是一个身份验证问题。我们不知道它是基于使用还是基于主机的身份验证,是吗?完全正确;)我们不知道。假设把“u”和“我”变成了“屁股”:)如果Trinath能给我们更多的信息就好了。。。我把这个留给你,我对这个问题没有专业知识。只是“你试过了吗?”这类答案往往不正确,所以我想我应该插嘴,试着把它往前推一点。我没有成功:(这怎么办?您还可以尝试使用另一种语言来验证这是node.js中的错误还是网络问题。您可以让node ssh旋转一下。以下是教程: