我是这个node.js的新手,并使用模块simple-ssh从我的windows到远程服务器执行shell命令。
每当我运行我的代码时,控制台都会用[Error: Authentication failure. Available authentication methods: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive]
诅咒我
我已经放置了一个RSA私钥文件,并设置了Windows ENV variable
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-prompt 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.
我错过了什么吗?如果是,那我该如何克服呢?
任何帮助将不胜感激:)
感谢。
答案 0 :(得分:1)
您的密钥需要添加到服务器上的〜/ .ssh / authorized_keys,才能使密钥正常工作。
mscdex npm包SSH2,simple-ssh包装,在windows中使用ssh.agent的文档中有这个:
`agent - string - ssh-agent的UNIX套接字的路径,用于基于ssh-agent的用户身份验证。 Windows用户:设置为“pageant”,以使用Pageant或(实际)路径进入cygwin“UNIX套接字”。