问题标签 [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 投票
1 回答
4103 浏览

ruby - 如何在 Ruby 中使用 net-ssh sudo su

我试图弄清楚如何sudo su - #{su_user}在 Ruby 之后发送多个 net-ssh 命令链。

我当前的代码在下面,并与sudo su命令一起挂起,即使在send_data "#{password}\n".

同时,在系统上,手动执行sudo su - admin2不需要输入密码。

任何帮助,将不胜感激!


0 投票
1 回答
1255 浏览

shell - 使用 Net::SSH Ruby 库远程执行需要 sudo su 的命令 - 另一个用户

我的环境为节点服务器(Rundeck 服务器)和节点目标(远程 Solaris 主机)之间的用户“master”配置了 SSH 无密码身份验证。

在 Target 上,我想/app/acme/stopApp.sh用 user执行一个脚本appmanager

通常,当我需要手动运行脚本时,我使用:

或者简单地说:

它可以在没有密码的情况下运行并最终运行(作为 appmanager):

但我无法弄清楚如何使用 Net::SSH 重现这些步骤。当我执行sudo su - appmanagerthen/app/acme/stopApp.sh时,我是在子 shell 中执行的,对吗?

我意识到,如果我尝试在目标服务器上执行类似的操作:

我收到以下消息:

0 投票
3 回答
1476 浏览

ruby - 如何正确实现 Net::SSH 端口转发

我一直在尝试让端口转发与 Net::SSH 一起正常工作。据我了解,如果我希望能够从同一个 Ruby 程序中使用 Net::SSH 会话,我需要分叉出它,以便事件处理循环实际上可以处理通过连接发送的数据包。但是,这会导致您在下面看到的丑陋:

任何人都可以向我展示一个更优雅/更好的工作解决方案吗?

0 投票
1 回答
1210 浏览

ruby-on-rails - ruby net/ssh 无法远程执行 rake 命令

您好我正在尝试使用 ruby​​ net/ssh gem (2.0.24) 连接到远程服务器并运行 rake 任务。我可以使用下面概述的脚本运行其他简单的任务,但是 rake 失败了。

这是我的代码

我收到以下错误消息

当我手动ssh 进入远程服务器时,我可以很容易地运行 rake taks ,但正如我上面所概述的,它不适用于 net/ssh。

不知何故,我觉得我没有连接到正确的 shell 或对路径变量的正确访问,但我不确定,也不知道如何修复它。有什么想法吗?

TIA

0 投票
1 回答
724 浏览

ruby - 使用 session.exec 时出现 Ruby Net::SFTP 错误

我从Net::SFTPRuby (ruby 1.9.3p194) 中得到了一些意想不到的行为。

变体 #1失败。它启动一个 SFTP 块并用于session.exec!运行 shell 命令。

变体 #2成功。它启动一个 SSH 块并用于sftp.upload!复制文件。

任何想法或解释将不胜感激。

这是变体 #1 的堆栈跟踪:

0 投票
2 回答
4819 浏览

ruby-on-rails - 如果失败,Net/SSH.start 不会引发异常

我正在使用Net::SSH连接到另一台服务器。它工作正常,但我希望能够处理无法连接的情况。该方法的文档没有提到异常,据我所知,它没有引发任何异常。在以下示例中,传递不存在且没有键的主机和用户不会引发异常。

我可以检查它是否失败的唯一方法是查看@session,它将为零,但这并不能告诉我它失败的原因。

[更新] 在 irb 中运行以下命令会引发 SocketError:

为什么这不会在我的应用程序中引发异常?

0 投票
2 回答
2450 浏览

ruby - 使用 Ruby Net::SSH 通过多个系统的代理隧道

我需要一些关于如何使用 Ruby Net::SSH 和 Net::SCP gem 通过多个系统进行代理以执行命令或复制文件的建议。

它与我之前发布的这篇文章非常相似(如果不是几乎完全相同),使用的是 linux 命令行中的基本 ssh。

如何为各种系统编写多个 ssh 和 scp 命令脚本

例如,LOCAL 是我的本地系统。

系统 A 是连接到 LOCAL 的第二个系统

系统 B 是仅连接到系统 A 的第三个系统。此外,系统 B 被配置为仅允许系统 A 通过其 ssh 密钥进行访问。

对于来自命令行的普通 ssh,我以这种方式设置了我的 .ssh/config 文件:

从这一点来看,只要我的 pub key 在 sysA 的 authorized_hosts 中(假设它总是如此),并且 sysA 的 pub key 在 authorized_hosts sysB 中(相同的假设),以下将无缝工作:

我想在 Ruby 中实现这种确切的行为。我有一些类似于以下的代码:

不幸的是,这不起作用。我收到身份验证失败。

我在这里想念什么?

0 投票
4 回答
6644 浏览

ruby-on-rails - Net-ssh 执行超时?

在我的应用程序中,我想exec!在指定时间后终止我的 SSH 连接命令。

我找到了:timeoutforNet::SSH.start命令,但按照文档,这仅适用于初始连接。exec该命令有等效的东西吗?

我的第一个猜测是不使用exec!,因为这将等到命令完成,而是使用exec并用循环包围调用,该循环检查每次迭代的执行状态并在给定时间后失败。

像这样,如果我正确理解了文档:

然而,这对我来说似乎很脏。我期待类似的东西server.exec("some command" { :timeout=>60})。也许有一些内置功能可以实现此功能?

0 投票
6 回答
7471 浏览

rubygems - 无法安装 chef,gem 版本与 net-ssh net-ssh-multi net-ssh-gateway 冲突

使用 rvm 和一个空的 gemset,我得到了这个:

我已经尝试通过安装早期版本的 net-ssh-gateway 和 net-ssh-multi 来解决它,但是 net-ssh-multi 1.1 版通过安装 1.1.2 让我感到困惑。

0 投票
2 回答
277 浏览

gem - 使用 Rubber gem 设置 Varnish 服务器

我正在尝试在缓存服务器上安装清漆。我的以下堆栈与...

HA 代理服务器 ----> 缓存(清漆)服务器 ----> Nginx + Unicorn 服务器

我已经能够正确设置 HAProxy 和 Varnish 的所有配置文件,以沿管道移动流量。但是,当我尝试引导我的缓存服务器时出现错误。

** ERROR: While executing gem ... (Gem::DependencyError) ** Unable to resolve dependencies: rubber requires net-ssh (~> 2.4.0); fog requires net-ssh (>= 2.1.3); capistrano requires net-ssh (>= 2.0.14); net-ssh-gateway requires net-ssh (>= 2.6.4); net-scp requires net-ssh (>= 2.6.4); net-sftp requires net-ssh (>= 2.6.4) ** /tmp/gem_helper:32:in `block in <main>' ** : Unable to install versioned gem rubber:2.1.2 (RuntimeError ** ) ** from /tmp/gem_helper:30:in `each' ** from /tmp/gem_helper:30:in `<main>'

我似乎无法弄清楚为什么会这样。任何帮助都会很棒。谢谢