问题标签 [net-ssh]

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

device - 无法检索本地事实:已关闭流

在尝试对 cisco 设备使用“puppet device”时,是否有人遇到过以下错误?

无法检索本地事实:已关闭流

它只发生在少数选定的设备上,但我一生都无法弄清楚为什么会出现异常?还是扔什么?我很确定这与 puppet 如何使用 ruby​​ 的 net-ssh gem 有关?但我无法证实这一点。我也尝试了各种 net-ssh 版本,但仍然出现相同的错误。

0 投票
0 回答
3139 浏览

ruby - Ruby net/ssh connection closed by remote host (Net::SSH::Disconnect)

I'm using net/ssh to ssh to a server and run a command, I have key based access to the server and can connect as usual with ssh in my terminal - this issue is very intermittent and only seems to sporadically happen with no obvious cause. What I would like to know is what causes this, and is there a way to catch it and retry the connection if it happens?

the error:

The code causing it:

0 投票
2 回答
577 浏览

ruby-on-rails - 在 ruby​​ 中使用 net::ssh 使用 sudo 命令从远程系统获取信息

我有一种情况,因为我必须登录到远程系统并获取他们的硬件信息。我登录到他们的系统,为此我使用了 ssh,我正在使用 net-ssh gem。这是我登录并获取信息的代码

为了获取我使用过的sudo -S dmidecode -s system-serial-number命令的信息,它给出了用户密码的输出作为用户 1.0.0的密码 我如何删除该消息?

我已经参考了这个链接,但我也实现了它,但是加载需要很多时间他们有什么其他方法可以做到这一点?

d

0 投票
1 回答
741 浏览

ruby-on-rails - Rails + 延迟作业:SSH 连接池

当前情况:我有一个 Rails 应用程序,其中有 N 个延迟的工作人员。每当我想向某台机器发送 SSH 请求时,我都会为工作人员创建一个任务。Worker 执行如下操作:

有时我会创建例如 50 个这样的任务来一个一个地执行,或者在 5-10 分钟内执行。在这种情况下,每个任务都会打开单独的连接,这并不有效,有时会因为连接太多而被目标服务器阻塞。

我想要什么:已打开存储在某处的连接并由每个工作人员重用。这样每个工作人员都以某种方式获得连接,然后运行

我尝试过的

  • 在文件/数据库/缓存中存储连接看起来是不可能的,因为它们不可序列化
  • 尝试使用单例类和在初始化程序下实例化的全局变量。但是每个worker的类对象是不同的(后来发现不能选择全局变量)。

有办法解决吗?还有其他想法吗?谢谢!!

0 投票
1 回答
1136 浏览

ruby - 在 Gemfile.lock 中管理冲突的依赖项

在我的 gemspec 文件中:

  • 我有一个名为 zconfig 的 gem 依赖项,它明确需要 net-ssh 版本 2.6.8
  • 我也在使用 net-sftp,它又需要 net-ssh 版本 >= 2.6.5

当 I 时bundle install,bundler 足够聪明,可以识别两个 gem 的需求,并正确地将 2.6.8 识别为要安装的 net-ssh 版本。

到目前为止,在远程服务器上进行测试时,我一直在克隆项目并安装这些 gem,bundle install --deployment然后使用本地安装的供应商 gem 运行项目bundle exec ..

但是,我现在已经完成了开发,我已经将项目打包为 gem 并将其安装在远程服务器上。问题是执行 gem 时,ruby 不符合我的 Gemfile.lock 规范并使用 net-ssh 2.7.0,这会导致冲突:

bundle exec my_gem有没有办法使用 Gemfile.lock 规范做类似的事情?

0 投票
1 回答
291 浏览

ruby - Rspec net-ssh 会话抛出 NoMethodError

我有一个运行 ssh 会话的 ruby​​ 脚本(scratch/ssh.rb):

我写了一个规范(spec/test_ssh.rb)如下:

我尝试按如下方式运行规范:

并得到以下结果:

有趣的是,运行 ssh.rb 本身会成功,所以我认为它与 RSpec 有关。

我试图查找 net-ssh 源代码,发现这里确实使用了“超时”,这似乎是一个合法的 Ruby 模块。

我怀疑这可能是由于 rspec 使用不同/剪切版本的 Ruby 解释器来运行测试,但我不知道如何检查它。我试图put LOAD_PATH在规范中,但它没有显示任何可疑之处。

Ruby 版本:1.9.3 Rspec 版本:2.14.7 net-ssh 版本:2.1.4

有谁知道我需要在哪里挖掘才能解决这个问题?

非常感谢!

0 投票
1 回答
946 浏览

ruby - ruby 在远程机器上运行命令

我正在尝试使用 ruby​​ 的 net ssh 远程运行命令。我需要输出以及退出代码。关于此主题还有其他 stackoverflow 线程,但已接受的解决方案不起作用。有些人建议使用 net-ssh-shell gem,但是当我尝试时,我得到一个错误,说这个包与我的 net-ssh 包的版本冲突......这是我所拥有的:

它可以工作,但如果失败,它不会引发异常。我也尝试使用通道来检索退出代码,但它总是返回 0:

请帮帮我。我已经根据互联网上的错误信息尝试了几件事。

0 投票
2 回答
7541 浏览

ruby - 如何通过 SSH 执行远程 Ruby 脚本文件?

我有一个名为“test.rb”的 Ruby 文件,我通过 Net::SCP 将它上传到服务器。

该文件的内容是:

如何通过 Net::SSH 执行该文件并获取 STDOUT 或 STDERR?

这是我得到的错误:

那是因为 Net::SSH 不会加载登录 shell。

我已经尝试了从 Net::SSH::Shell 到 SSHkit 和 rye 的所有方法来解决执行脚本和获取任何 STDOUT 的问题。

当我无法访问登录 shell 并获得任何 STDOUT 或 STDERR 时,如何通过 Net::SSH 执行脚本?

我正在使用 Ruby-2.1.0。

0 投票
1 回答
4743 浏览

ruby - MissingSourceFile: cannot load such file -- net/scp

Since upgrading my Rails (2.3.17) app to Ruby 1.9.3 I lost the ssh.sftp.upload! method, so I'm trying to make use of the net-scp library, however I can't seem to use it in Rails. In irb I can however require the file fine, just not in rails console.

This seems to work however:

Here's my relevant Gemfile.lock

How can I fix or circumvent this?

0 投票
1 回答
126 浏览

ssh - 无法在窗口环境中使用 ruby​​“net/ssh”gem 将远程(ec2)端口转发到本地端口

我正在尝试将远程(ec2)端口转发到本地端口,以在我的本地浏览器中观看作业跟踪器,该浏览器在亚马逊 ec2 集群上运行。但无法转发远程端口。

这是我的代码: