问题标签 [ssh2]

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 投票
1 回答
350 浏览

php - 无法使用 phpseclib v2.x 对 SFTP 服务器进行身份验证 - 未报告错误

我正在尝试使用 对 SFTP 服务器进行身份验证phpseclib,但遇到问题并且无法进行故障排除。

往底部我贴了麻烦phpseclib代码和日志。

确认我确实拥有正确的密钥

我知道我有正确的密钥,因为我可以像这样从 shell 连接:

这在 shell 中可以正常工作,并给我一个 SFTP 提示:

我的怀疑

我有两件事我想知道是否导致了这个问题:

  • 通过 shell 连接,我必须指定-c aes128-cbc,否则由于某种原因 SSH 无法协商加密方法。我也必须这样做phpseclib吗?
  • 我的密钥开始说BEGIN OPENSSH PRIVATE KEY,我觉得它应该说BEGIN RSA PRIVATE KEY......但我不清楚为什么如果它是这样的东西可以从 shell 工作(除非phpseclib不支持 OpenSSH 私钥?不确定如何测试/验证。或者是否有办法将我的密钥格式转换为 RSA 密钥格式?)。

我对 SSH/SFTP 的了解还不够,无法确定其中任何一个都是问题所在。

代码

日志

这会产生类似这样的输出(为了安全起见,我屏蔽了一些信息):

0 投票
2 回答
403 浏览

javascript - ssh2-sftp-client 获取多个文件 - 错误“结束后写入”

我正在尝试从 ftp 加载多个文件,但出现错误:“结束后写入”。我无法找到问题。

连接.js

调用下一个方法:

当我第二次调用 getFtpFileContent 方法时,我得到了提到的错误(“结束后写入”)。

请你帮助我好吗?我在哪里做错了?

0 投票
1 回答
1291 浏览

javascript - 使用 ssh2 从 Windows 到 Linux 的文件传输失败:ssh:无法解析主机名 C:名称或服务未知

我正在尝试使用 JavaScript 中的 ssh2 将文件从 Windows 机器发送到 linux 服务器,sftp 无法正常工作,所以我正在使用 exec 并指定 scp 命令,但我遇到了错误。

STDERR:ssh:无法解析主机名 C:名称或服务未知

0 投票
1 回答
1557 浏览

php - 当我尝试关闭 ssh2 连接时,没有回复

我编写了一个 php 脚本,在 php7.3 的 apache 服务器上本地执行,执行以下操作:

  1. 通过 ssh2 访问服务器
  2. 检查文件是否存在
  3. 紧密连接
  4. 打印 json 数据对象作为响应。

除了关闭连接之外,脚本可以正常工作。如果我添加 ssh2_disconnect 函数,则不会返回任何响应。我错过了什么?这是我的代码:

0 投票
2 回答
621 浏览

php - phpseclib SSH2写入不执行长命令

我正在尝试对设备(防火墙)执行 SSH 命令。长度短时执行命令。当长度约为 1000 个字符时,不执行命令。

当我通过 putty 执行命令时,它也可以正常工作。

在阅读了几个解决方案后,我尝试将超时设置为 5 秒。仍然没有帮助。

在设备日志中,我可以看到 SSH 登录和注销。但是没有活动。

我正在使用 phpseclib ssh 2.0 版

0 投票
0 回答
119 浏览

php - SSH to Fortigate firewall failing using phpseclib

I am trying to execute the below command on fortigate using my php script using library phpseclib.

I am executing the above command using ssh in a php script. It does edit the group successfully if I add few members. If I add more members, it is not editing the group.

however, If I execute the set member command with more members directly on the cli, it is editing successfully. Issue is occurring just when the command runs from the script only when the set member command has about 40 members.

0 投票
3 回答
3485 浏览

homebrew - 安装具有自制软件和 php 7.3 的 ssh2 扩展

尝试ssh2使用 pecl 安装扩展时遇到以下错误:

这是我所做的:

那安装了 php 7.3.3、libssh2 1.8.0 并且无法安装 ssh2-1.1.2。
有没有人有解决这个问题的方法?谢谢!

相关链接:
https ://github.com/docker-library/php/issues/767
为 PHP 安装 PECL SSH2 扩展

0 投票
1 回答
1211 浏览

node.js - 如何使用适用于 nodejs 的 npm 模块 ssh2 下载包含所有文件和文件夹的目录?

我正在尝试通过 SFTP 将文件和文件夹下载到我的本地计算机。我正在使用以下代码,并且能够下载特定目录中的文件,但无法下载文件夹(递归地使用它们各自的文件和文件夹)同一目录

}

0 投票
1 回答
715 浏览

php - php fopen ssh2 sftp 连接结果“资源 ID #5”

通过使用followign代码,如果我回显$stream,我会得到结果“Resource id #5”

我在 apache (linux) phpinfo 上使用 PHP 7.0:

  • SSH2
  • 扩展版本 0.12+dev
  • libssh2 版本 1.5.0
  • 横幅 SSH-2.0-libssh2_1.5.0*

    /li>

结果是“Resource id #5”,我不知道我做错了什么

0 投票
1 回答
1466 浏览

javascript - NodeJS反向SSH隧道:无法绑定到serveo.net:80

语境

不久前,我发现了一个很棒的服务,叫做Serveo。它允许我使用反向 SSH 隧道向 Internet 公开我的本地应用程序。

例如要在我的机器上https://abc.serveo.net转发的连接。http://localhost:3000

为此,它们不需要安装客户端,我只需在命令行中输入:

80我要绑定的serveo.net 上的远程端口在哪里,并且是localhost:3000我的应用程序的本地地址。

如果我只是80在左侧输入,Serveo 将回答可用的子域Forwarding HTTP traffic from https://xxxx.serveo.net在哪里,并支持 https。xxxx

但是,如果我键入另一个端口,例如59000,该应用程序将通过 可用serveo.net:59000,但没有 SSL。

问题

现在,我想用 NodeJS 来做这件事,在我为我的同事和公司的合作伙伴构建的工具中实现自动化,这样他们就不必担心,也不必在他们的机器上安装 SSH 客户端. 我正在使用SSH2 节点模块

这是一个工作代码示例,使用自定义端口配置(此处为59000),应用程序正在侦听http://localhost:3000

这工作正常,我可以访问我的应用程序http://serveo.net:59000。但它不支持 HTTPS,这是我的要求之一。如果我想要 HTTPS,我需要将端口设置为80,并将远程主机留空,就像上面给出的普通 SSH 命令一样,以便 Servo 为我分配一个可用的子域:

但是,这会引发错误:

我尝试了很多事情都没有成功。如果有人知道我的示例中可能有什么问题,我将不胜感激。谢谢!