小编ean*_*sen的帖子

连接到 sftp.webtrends.com 时没有匹配的主机密钥

我正在尝试使用 Firebase Cloud Functions 将文件发送到 webtrends ftp 服务器,但遇到了无法解决的问题。由于我使用 Firebase Cloud Functions,我的函数是从 Nodejs 服务器运行的。我正在使用这个 npm 包:https://www.npmjs.com/package/ssh2-sftp-client

在线阅读并解释调试日志后,我了解到问题是服务器使用了已弃用的加密算法(ssh-dss)。我在这里读到https://www.openssh.com/legacy.html ssh-dss 是遗留的,因此不受 ssh2 支持。

我发现的大多数其他解决方案都告诉我配置 ssh 配置,但在这种情况下我无权访问远程并且无法配置它。

这是我用来连接的代码:

const Client = require('ssh2-sftp-client');
const sftp = new Client();
sftp.connect({
  host: 'sftp.webtrends.com',
  port: '****', // omitted
  username: '****', // omitted
  password: '****', // omitted
  algorithms: {
    serverHostKeys: ['ssh-dss'],
  },
});
Run Code Online (Sandbox Code Playgroud)

这是调试日志:

DEBUG: Local ident: 'SSH-2.0-ssh2js0.1.20'
DEBUG: Client: Trying sftp.webtrends.com on port **** ...
DEBUG: Client: Connected
DEBUG: Parser: IN_INIT
DEBUG: Parser: IN_GREETING
DEBUG: …
Run Code Online (Sandbox Code Playgroud)

sftp node.js firebase ssh2-sftp google-cloud-functions

3
推荐指数
1
解决办法
3743
查看次数