gpt4 book ai didi

javascript - 如何在node.js(simple-ssh模块)中设置SSH代理转发?

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:15 31 4
gpt4 key购买 nike

我是这个 node.js 的新手,并使用模块 simple-ssh 从我的 Windows 到远程服务器执行 shell 命令。
每当我运行代码时,控制台都会用 [错误:身份验证失败。可用的身份验证方法:publickey、gssapi-keyex、gssapi-with-mic、password、keyboard-interactive]
我已经放置了 RSA 私钥文件,并设置了 Windows ENV 变量 SSH_AUTH_SOCK。但它仍然不断给出错误。
下面是我为 simple-ssh 编写的代码片段:

var ssh = new SSH({
host: sshHost,
user: 'root',
timeout: 11000000,
key: require('fs').readFileSync("D:/Keys_pair_prvt_pub/rsa_key"),
agent: process.env.SSH_AUTH_SOCK,
agentForward: true
});

当我尝试从 Windows cmd 提示符SSH 远程时,出现错误:

$> ssh -A <myRemote.host.com>
ssh : The term 'ssh' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.

我错过了什么吗?如果是,那么我该如何克服这个问题?
任何帮助将不胜感激:)
谢谢。

最佳答案

您的 key 需要添加到服务器上的 ~/.ssh/authorized_keys 中才能发挥作用。

mscdex npm 包 SSH2(simple-ssh 包装)在 Windows 上使用 ssh.agent 的文档中有此内容:

`agent - 字符串 - ssh-agent 的 UNIX 套接字路径,用于基于 ssh-agent 的用户身份验证。 Windows 用户:设置为“pageant”,以便使用 Pageant 或 cygwin“UNIX 套接字”的(实际)路径进行身份验证。

关于javascript - 如何在node.js(simple-ssh模块)中设置SSH代理转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40526371/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com