问题标签 [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.
ruby - 如何在 Ruby 中使用 net-ssh sudo su
我试图弄清楚如何sudo su - #{su_user}
在 Ruby 之后发送多个 net-ssh 命令链。
我当前的代码在下面,并与sudo su
命令一起挂起,即使在send_data "#{password}\n"
.
同时,在系统上,手动执行sudo su - admin2
不需要输入密码。
任何帮助,将不胜感激!
shell - 使用 Net::SSH Ruby 库远程执行需要 sudo su 的命令 - 另一个用户
我的环境为节点服务器(Rundeck 服务器)和节点目标(远程 Solaris 主机)之间的用户“master”配置了 SSH 无密码身份验证。
在 Target 上,我想/app/acme/stopApp.sh
用 user执行一个脚本appmanager
。
通常,当我需要手动运行脚本时,我使用:
或者简单地说:
它可以在没有密码的情况下运行并最终运行(作为 appmanager):
但我无法弄清楚如何使用 Net::SSH 重现这些步骤。当我执行sudo su - appmanager
then/app/acme/stopApp.sh
时,我是在子 shell 中执行的,对吗?
我意识到,如果我尝试在目标服务器上执行类似的操作:
我收到以下消息:
ruby - 如何正确实现 Net::SSH 端口转发
我一直在尝试让端口转发与 Net::SSH 一起正常工作。据我了解,如果我希望能够从同一个 Ruby 程序中使用 Net::SSH 会话,我需要分叉出它,以便事件处理循环实际上可以处理通过连接发送的数据包。但是,这会导致您在下面看到的丑陋:
任何人都可以向我展示一个更优雅/更好的工作解决方案吗?
ruby-on-rails - ruby net/ssh 无法远程执行 rake 命令
您好我正在尝试使用 ruby net/ssh gem (2.0.24) 连接到远程服务器并运行 rake 任务。我可以使用下面概述的脚本运行其他简单的任务,但是 rake 失败了。
这是我的代码
我收到以下错误消息
当我手动ssh 进入远程服务器时,我可以很容易地运行 rake taks ,但正如我上面所概述的,它不适用于 net/ssh。
不知何故,我觉得我没有连接到正确的 shell 或对路径变量的正确访问,但我不确定,也不知道如何修复它。有什么想法吗?
TIA
ruby - 使用 session.exec 时出现 Ruby Net::SFTP 错误
我从Net::SFTP
Ruby (ruby 1.9.3p194) 中得到了一些意想不到的行为。
变体 #1失败。它启动一个 SFTP 块并用于session.exec!
运行 shell 命令。
变体 #2成功。它启动一个 SSH 块并用于sftp.upload!
复制文件。
任何想法或解释将不胜感激。
这是变体 #1 的堆栈跟踪:
ruby - 使用 Ruby Net::SSH 通过多个系统的代理隧道
我需要一些关于如何使用 Ruby Net::SSH 和 Net::SCP gem 通过多个系统进行代理以执行命令或复制文件的建议。
它与我之前发布的这篇文章非常相似(如果不是几乎完全相同),使用的是 linux 命令行中的基本 ssh。
例如,LOCAL 是我的本地系统。
系统 A 是连接到 LOCAL 的第二个系统
系统 B 是仅连接到系统 A 的第三个系统。此外,系统 B 被配置为仅允许系统 A 通过其 ssh 密钥进行访问。
对于来自命令行的普通 ssh,我以这种方式设置了我的 .ssh/config 文件:
从这一点来看,只要我的 pub key 在 sysA 的 authorized_hosts 中(假设它总是如此),并且 sysA 的 pub key 在 authorized_hosts sysB 中(相同的假设),以下将无缝工作:
我想在 Ruby 中实现这种确切的行为。我有一些类似于以下的代码:
不幸的是,这不起作用。我收到身份验证失败。
我在这里想念什么?
ruby-on-rails - Net-ssh 执行超时?
在我的应用程序中,我想exec!
在指定时间后终止我的 SSH 连接命令。
我找到了:timeout
forNet::SSH.start
命令,但按照文档,这仅适用于初始连接。exec
该命令有等效的东西吗?
我的第一个猜测是不使用exec!
,因为这将等到命令完成,而是使用exec
并用循环包围调用,该循环检查每次迭代的执行状态并在给定时间后失败。
像这样,如果我正确理解了文档:
然而,这对我来说似乎很脏。我期待类似的东西server.exec("some command" { :timeout=>60})
。也许有一些内置功能可以实现此功能?
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 让我感到困惑。
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>'
我似乎无法弄清楚为什么会这样。任何帮助都会很棒。谢谢