【问题标题】:Connect ssh server through nodejs code with ssh key and server name使用 ssh 密钥和服务器名称通过 nodejs 代码连接 ssh 服务器
【发布时间】:2018-12-05 00:14:32
【问题描述】:

我有 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

【问题讨论】:

标签: javascript node.js npm ssh devops


【解决方案1】:

您是否尝试将“privateKey”替换为“密码”并输入您的密码。 它可能不是最安全的,但它通常可以工作。 除非你必须使用来自 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);

【讨论】:

  • 根据文档npmjs.com/package/node-sshprivateKey 可以吗??
  • 是的,这很好,但根据文档,密码也可以工作。github.com/mscdex/ssh2#client-methods
  • 实际错误显示“getaddrinfo ENOTFOUND”您认为这可能相关吗? p.s.我在第一条评论上得到了纠正 :) 虽然,我们知道他们使用的是基于用户还是基于主机的身份验证?
  • 你说得对,我的解决方案与其说是解决方案,不如说是一种变通方法。但是“getaddrinfo ENOTFOUND”意味着客户端无法连接到给定的地址,所以如果它从终端工作,我猜这是一个身份验证问题。我们不知道它是基于使用的身份验证还是基于主机的身份验证,对吗?
  • 完全正确;)我们不知道。假设用 'u' 和 'me' 做一个 'ass' :) 如果 Trinath 能给我们提供更多信息,那就太好了......我会把这个留给你,我对这个问题没有专业知识。只是“你试过了吗?”答案类型往往不正确,所以我想我会插话并尝试将其移动一点。我没有成功:(
猜你喜欢
  • 2023-03-16
  • 2021-03-09
  • 2011-05-21
  • 2022-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 2020-10-12
相关资源
最近更新 更多