问题标签 [libssh]

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 回答
2452 浏览

c - 使用 libssh 和 c lang 的 SSH 隧道

我正在尝试使用libssh打开 SSH 隧道。

基本上,我有两个主机在路上。首先,我需要通过 SSH 连接到第一个主机(我已经完成了这部分),然后我需要从该主机通过 SSH 连接到第二台主机:

这可能libssh吗?

我尝试使用此功能ssh_channel_open_forward,但这只会打开 TCP 会话,而不是 ssh 会话。

0 投票
2 回答
829 浏览

c++ - 如何使用 libssh 运行 makefile?

我对 libssh (libssh.org) 有疑问。我需要在远程服务器上运行一个 makefile。我用命令“channel_request_exec”来做:

Makefile 位于根目录下:

我发送命令“make”并接收回声:

但什么也没发生(不执行编译)。

如果我用腻子做:一切正常。回声:

我该如何解决这个问题?

0 投票
0 回答
5241 浏览

c++ - 如何使用 libssh 作为服务器?

我正在开发与 Web 应用程序通信的 Windows 版本的服务器应用程序。Web 应用程序最初与 Linux 服务器一起工作,并将通过 SSH 连接到 Linux 以在服务器上执行命令。我的计划是使用 Qt 构建一个 C++ 服务器来接收来自 Web 应用程序的命令,并处理它们以执行这些命令的 windows 版本。

例如,如果 Web 应用程序最初发送“echo $HOME”并收到主目录,我想在我的 Windows 服务器上接收相同的 SSH 命令,然后处理它,如果服务器配置为主目录C:\Example\,然后它会发回 C:\Example\。我的目标是对 Web 应用程序进行尽可能少的更改,而是让 Windows 服务器处理 Linux SSH 命令以执行 Windows 等效操作。

我以前从未使用过 libssh,但通过一些搜索我找到了它并读到它可以用作 SSH2 服务器。基本上我的问题是,我将如何使用 libss2 在我的 Qt 项目中创建服务器,以允许该 Web 应用程序通过 SSH 进入并发送命令。

如果您认为有比 libssh 更好的方法,请告诉我,这正是我通过搜索找到的。

更新:我发现了这个服务器示例的代码。https://github.com/substack/libssh/blob/master/examples/samplesshd-tty.c

老实说,我对此感到非常困惑。经过几个小时的谷歌搜索和代码工作后,我可能能够将其分解并理解发生了什么。但是,如果有人愿意引导我主要解释每一步发生的事情,那将不胜感激。

0 投票
2 回答
81 浏览

ssh - 必须与任意服务器通信的程序需要多少 SSH v1 支持?

我正在开始一个新项目,这是一个跨平台的 C++ 程序,需要使用程序中内置的 SSH 代码连接到用户选择的服务器。我试图在libssh和之间做出决定libssh2。(许可不是问题;libssh的 LGPL 很好。)

libssh2从这个页面来看,似乎是要走的路——除了一个可能的例外。它不支持 SSH v1。我不知道现在有多少服务器可能只支持 SSH v1。有没有人在这方面有经验,或者可以指出我可以回答的问题?

或者,任何人都可以指出另一个支持 SSH v1 和 v2 的具有 SCP 功能的 SSH 库吗?最好是线程安全的并且还可以支持非阻塞操作?

0 投票
1 回答
260 浏览

c++ - 使用 libssh 将“输入”发送到远程进程

我正在使用 libssh 登录终端,然后运行 ​​ncurses 应用程序。

我正在关注本教程,一次发送一个字符:http: //api.libssh.org/master/libssh_tutor_shell.html

ncurses 应用程序使用 getstr() 等待用户输入,我的问题是当我编写输入并按 enter 时,libssh 发送 '\n' 而不是输入信号,因此 curses 应用程序崩溃。

0 投票
2 回答
3433 浏览

c++ - libssh 是否支持 sftp 服务器功能?

在我的项目中,我需要在服务器和多个客户端之间传输文件。客户端和服务器之间的通信应该是加密的,应该有用户名和密码的认证,协议应该是通用的,所以我想到了sftp。

ssh 有两个 c/c++ 库:libssh 和 libssh2,其中只有第一个还提供服务器功能。

libssh 有一个 API 文档,其中包含子模块sftp的客户端模块有详细的文档记录。但是对于服务器API,我只能找到基本的 ssh 功能。

libssh 是否提供服务器端 sftp 支持?

0 投票
1 回答
1539 浏览

windows - 使用 libssh 库,我遇到了 ssh_scp_read 函数的问题

现在我正在尝试将文件从服务器(Linux)下载到我的主机(Windows)。它看起来运行良好(其他功能)但是当我试图从服务器读取文件时。文件中的数据不正确。

例如)服务器文本文件:

读取文件并保存到缓冲区:

我检查了小尺寸文本文件。它运作良好。但是现在我遇到了麻烦,因为文本文件比以前大。

这是我的代码。

0 投票
2 回答
631 浏览

bash - ssh 连接到 rbash 不会获取 .profile 文件

我正在使用libssh连接到远程机器并执行命令。

连接工作正常,但问题是:在远程机器上,我连接时正在运行的 bash 是 rbash。当我发送ps | grep ungreppable_phrase到另一台机器上执行时,输出如下:

(我从该列表中删除了 grep 命令)

所以,很明显,rbash是远程shell。

现在,rbash 手册页告诉我们在应用任何 rbash 限制之前读取启动文件。因此,如果我的任何启动文件(/etc/profile、~/.bash_profile;~/.bash_user 或 ~/.profile)包含 的定义PATH,则在我运行命令时该定义应该可见。特别是,如果其中一个目录中有一些可执行文件PATH,我应该能够运行它。

这是我的 .profile 文件中的一行:

不知何故,我设法ls在那里运行。它确实包含可执行文件。

我的 ~/.profile 是要获取的最后一个文件,它不包含任何其他文件的来源。也没有对PATH.

但是我得到一个“找不到命令”错误(或者看起来很像的东西,回声 $? 返回 127)。

有人能告诉我为什么我的 .profile 文件在我远程登录时似乎没有来源吗?是因为 libssh 中的一些代码吗?我正在尝试探索它以查找是否有一些特殊的选项传递给 rbash,而我在上面的 grep 中看不到这些选项。

(由于我们处于 rbash 模式,我不能简单地要求更改 PATH)

非常感谢,帕斯卡

0 投票
1 回答
564 浏览

c - Libssh 远程命令未在服务器上执行

阅读了相关文档教程并发现了类似的问题,我仍然无法继续。如果这是一个常见问题,我提前道歉。我进行了搜索,但我不确定我在寻找什么......

我正在 Debian 中试验 C 的 Libssh。

这将返回 SSH_OK 以表明命令已成功发送。正如我从一个类似的问题中了解到的那样,这是因为返回会监听命令的成功“发送”。return 不监听,看是否执行成功。

我的问题是,我该如何:

  • 执行命令(上面的函数目前不执行它只是发送命令)
  • 听听它的执行
  • 打印返回的输出?

我知道 ssh_channel_read() 函数,但由于命令从不执行,我通常会得到输出

0 投票
1 回答
291 浏览

c++ - C++ Libssh -sever/client 通过局域网传输文件的例子

这里的新手基本上我正在尝试构建一个通过局域网传输文件和文件夹的服务器/客户端文件传输应用程序。是否有人有任何我可以查看的使用 C++ 的示例应用程序?Libssh 示例都在我已经研究过的 C 语言中。libssh 和 libssh2 有什么关系?