问题标签 [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.
device - 无法检索本地事实:已关闭流
在尝试对 cisco 设备使用“puppet device”时,是否有人遇到过以下错误?
无法检索本地事实:已关闭流
它只发生在少数选定的设备上,但我一生都无法弄清楚为什么会出现异常?还是扔什么?我很确定这与 puppet 如何使用 ruby 的 net-ssh gem 有关?但我无法证实这一点。我也尝试了各种 net-ssh 版本,但仍然出现相同的错误。
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:
ruby-on-rails - 在 ruby 中使用 net::ssh 使用 sudo 命令从远程系统获取信息
我有一种情况,因为我必须登录到远程系统并获取他们的硬件信息。我登录到他们的系统,为此我使用了 ssh,我正在使用 net-ssh gem。这是我登录并获取信息的代码
为了获取我使用过的sudo -S dmidecode -s system-serial-number
命令的信息,它给出了用户密码的输出作为用户 1.0.0的密码
我如何删除该消息?
我已经参考了这个链接,但我也实现了它,但是加载需要很多时间他们有什么其他方法可以做到这一点?
d
ruby-on-rails - Rails + 延迟作业:SSH 连接池
当前情况:我有一个 Rails 应用程序,其中有 N 个延迟的工作人员。每当我想向某台机器发送 SSH 请求时,我都会为工作人员创建一个任务。Worker 执行如下操作:
有时我会创建例如 50 个这样的任务来一个一个地执行,或者在 5-10 分钟内执行。在这种情况下,每个任务都会打开单独的连接,这并不有效,有时会因为连接太多而被目标服务器阻塞。
我想要什么:已打开存储在某处的连接并由每个工作人员重用。这样每个工作人员都以某种方式获得连接,然后运行
我尝试过的:
- 在文件/数据库/缓存中存储连接看起来是不可能的,因为它们不可序列化
- 尝试使用单例类和在初始化程序下实例化的全局变量。但是每个worker的类对象是不同的(后来发现不能选择全局变量)。
有办法解决吗?还有其他想法吗?谢谢!!
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 规范做类似的事情?
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
有谁知道我需要在哪里挖掘才能解决这个问题?
非常感谢!
ruby - ruby 在远程机器上运行命令
我正在尝试使用 ruby 的 net ssh 远程运行命令。我需要输出以及退出代码。关于此主题还有其他 stackoverflow 线程,但已接受的解决方案不起作用。有些人建议使用 net-ssh-shell gem,但是当我尝试时,我得到一个错误,说这个包与我的 net-ssh 包的版本冲突......这是我所拥有的:
它可以工作,但如果失败,它不会引发异常。我也尝试使用通道来检索退出代码,但它总是返回 0:
请帮帮我。我已经根据互联网上的错误信息尝试了几件事。
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。
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?
ssh - 无法在窗口环境中使用 ruby“net/ssh”gem 将远程(ec2)端口转发到本地端口
我正在尝试将远程(ec2)端口转发到本地端口,以在我的本地浏览器中观看作业跟踪器,该浏览器在亚马逊 ec2 集群上运行。但无法转发远程端口。
这是我的代码: