问题标签 [ssh.net]

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

c# - 使用 C# 和 SSH.NET 通过 SSH 流式传输/拖尾数据会泄漏内存

我正在尝试使用 C# 通过 SSH 跟踪文件。该文件从一开始就被读取,然后在保持 SSH 连接的同时继续被监视数小时。我正在使用SSH.NET库为 SSH 提供功能。文件大小最高可达 ~2GB。当前的实现正在运行,但内存使用情况非常糟糕。

测试:为了测试这个功能,我使用 Visual Studio 2012,针对 .NET 框架 4.5,使用下面的代码创建一个小型控制台应用程序。我正在跟踪一个 ~127MB 的静态文件。

问题:从功能上讲,这工作正常,但内存使用情况非常糟糕。应用程序将在调用之前使用 ~7MB shellStream.WriteLine,然后使用 ~144MB 快速增加和平稳(当所有当前文件内容已从流中读取时稳定)。

下面是我尝试使用的代码。

是否缺少一些东西来防止内存尽可能多地增加,或者任何其他可以实现相同目标的解决方案?

0 投票
3 回答
23769 浏览

c# - SSH.NET 仅通过私钥进行身份验证(公钥身份验证)

尝试仅使用当前的 SSH.NET 库通过用户名和私钥进行身份验证。我无法从用户那里获取密码,所以这是不可能的。

这就是我现在正在做的事情。

现在,如果我PasswordAuthenticationMethodAuthenticationMethod[]数组中删除 ,我会得到一个异常,因为找不到合适的身份验证方法。如果我尝试这样传递(主机名、端口、用户名、密钥文件 2)

再次,没有找到合适的方法。

似乎我必须使用ConnectionInfo上面概述的对象,但似乎它评估PasswordAuthenticationMethod并且无法登录(因为我没有提供密码)并且从不评估PrivateKeyAuthMethod......是这样吗?是否有其他方法可以使用 SSH.NET lib 仅使用用户名或主机名和私钥进行身份验证?

0 投票
1 回答
1276 浏览

ssh.net - ssh.net 与服务器保持对话

我希望使用 ssh.net 与远程服务器保持对话

我正在做的是连接到主机,将更改目录之类的命令发送到除根目录之外的某个目录。将结果值存储为全局。

然后我通过 RunCommand() 发送另一个命令来检查当前目录...

发生的事情是,我得到的是根目录,而不是我刚刚在初始运行命令中更改的目录。

看起来正在发生的事情是,虽然与服务器的连接保持打开状态,但我以某种方式重置了终端会话,从而丢失了我与服务器的对话。

有谁知道如何使用 ssh.net 与远程服务器保持对话,以便我可以发送多个命令并使状态保持不变?

例如命令 1 = cd/somedir 命令 2 = pwd 并且命令 2 的结果是 /somedir

0 投票
2 回答
33011 浏览

c# - 如何在 C# 中在 SSH 服务器上运行命令?

我需要使用 C# 代码执行此操作:

  1. 在后台打开 putty.exe(这就像一个 cmd 窗口)
  2. 使用其 IP 地址登录到远程主机
  3. 输入用户名和密码
  4. 一个接一个地执行多个命令。
  5. 运行另一个命令,该命令得到响应,告诉我在此之前运行的命令已成功执行

所以我试图这样做:

0 投票
0 回答
11266 浏览

c# - 如何使用 SSH.Net 运行多个命令?

我正在尝试使用 SSH.Net 将用户 Wifi mac 地址添加到 Aruba Wifi 控制器,所以我正在运行这些命令:

但是什么也没发生,用户没有被添加......

0 投票
1 回答
986 浏览

c# - 捕获对变量的 SSH 响应

我目前正在尝试通过 C# 使用 SSH 命令与路由器“对话”。

我正在使用 SSH.net 模型。

这是我到目前为止的代码(所有命令都在另一个文件中)。理想情况下,我将能够捕获路由器对命令的响应,而不仅仅是单向传递和执行命令。

如何捕获响应?例如; 命令“显示环境”响应一系列因素

单位温度 Descr/ID 电流/阈值范围


1 Central Temperature/1 27C/11~79C 状态码:*温度超出阈值范围 Detail Fan

0 投票
1 回答
6041 浏览

c# - SSH.Net 隧道

我正在尝试制作一个 SSH 隧道应用程序。我成功地打开了一个带有动态端口的隧道,它一直工作到浏览器建立第一个连接为止。加载一个页面后,隧道不再工作,我无法打开下一页,直到我重新启动隧道。有时会有例外

“对象引用未设置为对象的实例。” Renci.SshNet.dll 中的“System.NullReferenceException”。

我的代码如下:

它出什么问题了?你能帮我让我的应用程序工作吗?提前谢谢了!

0 投票
1 回答
4959 浏览

c# - 在 C# 中使用 SSH.net 从远程文件中获取文件内容

我正在使用 SSH.NET (Renci.SshNet) 库来检索 SQL 文件的内容,但是当我尝试在 500MB 文件上使用以下代码时,它似乎无法处理大文件,因为我的计算机崩溃了。

然后我尝试使用 SFTP 来获取文件,但由于某种原因我无法访问 httpd.private 文件夹,所以我目前在尝试复制大文件时被卡住了。

如何使用类似的技术将大文件传输到我的 C# 应用程序进行保存?我相信 SFTP 是一个更好的解决方案,但我无法访问生成 sql 的文件夹。

SQL 文件是通过 mysqldump 命令生成的。

谢谢!

0 投票
3 回答
24138 浏览

wpf - SSH.NET实时命令输出监控

script.sh远程 Linux 机器上有一个长时间运行的脚本。我需要启动它并实时监控它的活动。脚本在其活动期间可能会输出到stdoutstderr。我正在寻找一种方法来捕获这两个流。

我使用 Renci SSH.NET 来上传script.sh和启动它,所以很高兴看到一个绑定到这个库的解决方案。在我看来,完美的解决方案是新方法:

0 投票
1 回答
1933 浏览

c# - 如何使用 C# 中的 SSH.NET 库连接 IPv6 地址

我想通过 SSH 连接到远程 GNU+Linux 机器并执行命令,但使用 IPv6 地址。使用 IPv4 地址,它工作得非常好。

我在 Ubuntu 15.04 上运行并使用 MonoDevelop (Mono 4.0)

这是我使用 Renci SSH.NET 库的示例代码:

我还尝试使用 Tamirs SshSharp 和终端控制。

添加[ ]到 IPv6 地址也不起作用。

我得到以下异常:

也许有人可以为我提供一个代码示例(在 C# 中)或告诉我一个明确支持 IPv6 地址的库。该库应该是免费的(最好有 Apache 许可)并且可用于商业用途。

问候维玛

编辑:

在得出我ipAddress缺少网络接口的结论后,我将其更改ipAddress"fe80::xxxx:xxxx:xxxx:xxxx%2"(是的 2 是正确的,我用 ping6 进行了测试)。

这似乎有点“更多”,因为异常变为:

解决了

使用 SSH.NET 的预发布包解决了我的问题!

感谢@MartinPrikryl 和其他人;)