问题标签 [ssh2-sftp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
191 浏览

php - PHP 尝试通过 SFTP 下载文件但在计算文件大小时收到 stat failed 错误

尝试从 SFTP 位置下载文件。

intval在流上使用它,因为它旨在修复我在这里读到的错误:PHP 7 SSH2.SFTP stat() bug work around。我正在运行 PHP 7.0.33。

但是,它仍然在filesize命令上失败

错误是:

我不明白为什么opendir并且fopen工作但filesize失败了。任何指导将不胜感激。

谢谢

更新:

我放弃了试图让它发挥作用。我正在使用它。不太复杂,但它可以完成工作

0 投票
1 回答
148 浏览

node.js - 在 AWS 中存储用户的 ppk 文件的最佳实践?

我需要从 node.js 中的 lambda 函数连接到 SFTP。

我将从 SecretsManager 访问密码。我的第一个想法是将 ppk 文件(加密)存储在 AWS S3 存储桶中。我查看了是否有从 AWS 存储和检索 ppk 文件的最佳实践,但找不到任何东西。任何建议,将不胜感激。谢谢!

0 投票
1 回答
322 浏览

node.js - 从 SecretsManager 检索 ppk 文件并传递给 ssh2-sftp-client

我正在尝试从机密管理器中检索 ppk 文件的内容并使用它来连接到 SFTP。

如果我将文件存储在本地并传递文件,我可以轻松地做到这一点。

如果我尝试传递存储在 AWS SecretsManager 中的 ppk 文件的内容,它将不起作用。

我之前也尝试过将从 AWS SecretsManager 返回的字符串转换为缓冲区,而不是使用 fs.readFileSync 但这不起作用。

可以这样做吗?如果可以,有人可以帮我做对吗?

0 投票
1 回答
1782 浏览

php - ssh2_connect(): 启动 SSH 连接时出错 (-43): 获取横幅失败

使用 php-ssh2 构建 docker 容器。php 7.2 版尝试使用时

我越来越Error starting up SSH connection(-43): Failed getting banner。有趣的事情就43在这里。有什么意义43。这意味着什么?还有任何想法如何解决这个问题?没有繁重的负载,手动运行连接。

0 投票
1 回答
145 浏览

amazon-web-services - 以编程方式将文件从 S3 存储桶移动到 Windows EC2,反之亦然

我想将文件推送到 Windows EC2 并从我的 EC2 获取文件夹并将其存储在 S3 中。因为我有很多 EC2,所以我想自动化这个 - 我目前在 ECS 上有一个使用ssh2-sftp-client库的 Node.js 服务器。使用以下代码,我可以将文件推送到其中(同样,我可以从中提取文件并将其上传到 S3):

但这不是一个强大的解决方案——即使我有 5 或 6 个用户尝试同时推送服务器错误,因为它有太多的活动 SSH 连接。

有一个更好的方法吗?我想要做的就是使用 Node.js(对于 Windows EC2)上传/下载特定目录。

0 投票
0 回答
198 浏览

java - Apache MINA SSHD java.security.InvalidKeyException:SHA-1 摘要算法的安全强度不足以满足此密钥大小

我们正在使用 Apache SSHD mina 运行 SFTP 服务器。使用 Java 7,一切正常。但是对于 Java 8,当任何 SFTP 客户端尝试连接时,我们都会遇到以下异常。如何使用 Java 8 在服务器端解决此问题。客户端可以使用 RSA 或 SHA 算法。但是无论密钥大小和类型如何,服务器都必须同时处理。我正在使用 SimpleGeneratorHostKeyProvider。

0 投票
0 回答
36 浏览

php - ssh2_sftp 找不到名称中带有 $ 符号的文件

我在这里遇到了一些情况。我有一个通过 SFTP 向我提供某些文件的外部方。这些文件的名称中包含一些特殊字符。例如

问题是,通过执行以下操作,它无法找到该文件。

但是,我可以获取 SFTP 上的其他文件。它们不包含任何“特殊”字符作为文件名的一部分。

我也尝试用单引号引用文件名,但没有运气。同样有趣的是,我没有使用phpseclib遇到这个问题。

目前,我没有很快更改实现或要求第三方更改文件名的灵活性。

0 投票
1 回答
727 浏览

php - 如何使用原生 sftp 函数和 PHP 中的 fwrite 提高文件上传的性能

您好我正在使用以下代码将一个大文件(500MB)上传到 sftp 服务器。

但是上传速度慢。代码在 Google Cloud Run 上运行。上传速度约为 8 MiB/s。

我也尝试通过 shell_exec 使用 lftp,但这会导致由于 Cloud Run 的更多问题。

上行链路不是问题,因为我可以通过 CURL post 发送文件而没有任何问题。

任何人都可以在这里提供帮助吗?

非常感谢,最好的,intxcc

0 投票
1 回答
716 浏览

javascript - 在 ssh2-sftp-client 中使用 ssh 指纹

好的,这可能需要预先解释一下。

我目前正在使用node-red进行自动化项目。我想使用 ssh 从远程服务器上传和下载文件。对于这个任务,我使用这个名为node-red-contrib-sftpc. 我稍微重写了库,以便我可以通过移交给节点的有效负载移交一些用于 sftp 连接的凭据。要建立连接sftp.connect,使用ssh2-sftp-client的方法:

您可以在文档中找到可以提供connect参数hostHashhostVerifier. ssh2-sftp-client 所基于的 ssh2 model的文档指出:

hostHash - 字符串 - 节点支持的任何有效哈希算法。主机的密钥使用此算法进行哈希处理,并作为十六进制字符串传递给 hostVerifier 函数。默认值:(无)

hostVerifier - function - 带参数的函数 (hashedKey[, callback]) 其中 hashedKey 是用于验证目的的主机密钥的字符串十六进制哈希。返回 true 以继续握手或 false 以拒绝和断开连接,或者如果您需要执行异步验证,则使用 true 或 false 调用 callback()。默认值:(如果未设置 hostVerifier,则自动接受)

所以这是我的问题:如何编写hostVerifier函数?我想通过hashedKeyand fingerprint,以便我可以返回trueor false,当握手成功与否时。我想检查给定的服务器密钥指纹是否是“正确的”指纹并且我连接到正确的服务器。

据我了解,第二个参数将是一个回调函数,但我不知道如何使用它,以便验证握手。这是我的尝试,或者至少是我尝试的方式。

我知道这是完全错误的,但我快要疯了,因为我不知道如何正确检查 ssh 主机密钥指纹。

0 投票
1 回答
944 浏览

node.js - 使用 Node 和 SSH2 将缓冲区数据写入 SFTP 服务器

我正在尝试使用 SSH2 模块将文件写入 Node 中的 SFTP 服务器。对于我的用例,文件源是 Azure Blob 存储,文件相对较大(超过 5 个 gig),因此想法是从块存储中捕获数据并将其写入服务器。不想下载整个文件然后执行写入,因为文件很大并且不想在运行时出现磁盘空间问题。

我通过使用可用的 downloadToBuffer() 和 write() 函数并增加“偏移量”直到所有字节都被写入,从而实现了这一点。如代码片段所示

此解决方案有效,但对于大文件感觉不是很有效。有没有更好的方法来实现这一点?也许使用流而不必使用循环?